2

私は次のhtmlを持っています:

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>

そしていくつかのJSコード:

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());
   });
});

このコードは、まさに私が望む選択ドロップダウンメニューを生成しますが、私の質問は、選択時にURLに移動するにはどうすればよいですか?では、yahooをクリックすると、yahoo.comに移動しますか?

ご協力いただきありがとうございます!

4

5 に答える 5

7
$('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;
  })
});

主要なブラウザで動作するデモをテストしました。

于 2010-04-21T06:38:06.500 に答える
1

これを試してみてください:

$('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());
   });
});

リダイレクトします。

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

選択ボックスがDOMで動的に作成されるために使用されるlive ()メソッド。

于 2010-04-21T05:14:49.163 に答える
1

これはそれを行う必要があります:

 $('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())});
       });
    });
于 2010-04-21T05:17:59.560 に答える
1

選択の作成に変更イベントを追加し、選択した値にユーザーを送信します。

var select=$(document.createElement('select')).insertBefore($(this).hide()).change(function(){
  document.location.href = $(this).val();
}); 
于 2010-04-21T05:19:29.100 に答える
1
<select name="dest" class="selec" onchange='document.location.href=this.options[this.selectedIndex].value;'>
于 2010-05-26T19:07:54.450 に答える