我有以下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吗?
感谢您的帮助!
答案 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;'>