Sélectionnez Menu, allez sur url sur select avec JQuery?

J'ai le html suivant:

Balisage HTML

<ul id="test"> <li><a href="http://www.yahoo.com">yahoo</a></li> <li><a href="http://www.google.com">Google</a></li> </ul> 

Et un certain code JS:

Code JQuery / JavaScript

 $('ul#test').each(function() { var select=$(document.createElement('select')).insertBefore($(this).hide()); $('>li a', this).each(function() { option=$(document.createElement('option')).appendTo(select).val(this.href).html($(this).html()); }); }); 

Ce code produit un menu déroulant sélectionné, exactement ce que je veux, mais ma question est de savoir comment puis-je accéder à l'URL sélectionnée? Donc, si je clique sur yahoo, cela m'amène à yahoo.com?

Merci de votre aide!

 $('ul#test').each(function() { var select=$(document.createElement('select')).insertBefore($(this).hide()); $('>li a', this).each(function() { option=$(document.createElement('option')).appendTo(select).val(this.href).html($(this).html()); }); select.change(function(){ //alert('url = ' + this.value ); window.location.href = this.value; }) }); 

Testé la démo de travail sur les principaux navigateurs.

Cela devrait le faire:

  $('ul#test').each(function() { var select=$(document.createElement('select')).insertBefore($(this).hide()); $('>li a', this).each(function() { option=$(document.createElement('option')).appendTo(select).val(this.href).html($(this).html()); option.click(function(){window.location = $(this).val())}); }); }); 

Ajoutez un événement de modification à la création de la sélection et envoyez l'utilisateur à la valeur sélectionnée.

 var select=$(document.createElement('select')).insertBefore($(this).hide()).change(function(){ document.location.href = $(this).val(); }); 

Donnez-lui un essai:

 $('ul#test').each(function() { // also give the select an id var select = $(document.createElement('select')).attr('id', 'myselect').insertBefore($(this).hide()); $('>li a', this).each(function() { option=$(document.createElement('option')).appendTo(select).val(this.href).html($(this).html()); }); }); 

Maintenant pour rediriger …

 $(function(){ $('#myselect').live('change', function(){ document.location.href = $(this).val(); }); }); 

La méthode live () utilisée parce que votre boîte de sélection est créée dynamiquement dans le DOM.

 <select name="dest" class="selec" onchange='document.location.href=this.options[this.selectedIndex].value;'>