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

使用live()方法是因为您的选择框是在 DOM 中动态创建的。

于 2010-04-21T05:14:49.163 回答
1
<select name="dest" class="selec" onchange='document.location.href=this.options[this.selectedIndex].value;'>
于 2010-05-26T19:07:54.450 回答
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 回答