选择菜单,使用JQuery转到选择的URL?

时间:2010-04-21 05:10:33

标签: javascript jquery select onselect

我有以下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());
   });
});

此代码生成一个选择下拉菜单,正是我想要的,但我的问题是如何在select上找到url?所以,如果我点击雅虎,它会把我带到yahoo.com吗?

感谢您的帮助!

5 个答案:

答案 0 :(得分: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;
  })
});

在主要浏览器上测试了工作demo

答案 1 :(得分: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中动态创建的。

答案 2 :(得分: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())});
       });
    });

答案 3 :(得分:1)

在创建选择时添加更改事件,并将用户发送到所选值。

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

答案 4 :(得分:1)

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