javascript - 使用 jQuery 根据无序列表选择选择选项

标签 javascript jquery html html-lists selection

我已经将我的无序列表转换为一个选择选项列表,但是我不确定如何让“selected”属性添加与列表中相同超链接相关的选项。

标记

<div class="navigation">
    <ul>
         <li><a href="foo.html">Foo</a></li>
         <li><a href="bar.html" class="selected">Bar</a></li>
         <li><a href="boo.html">Boo</a></li>
    </ul>
</div> 

Javascript

$('<select />').appendTo('.navigation');

// Populate dropdown with menu items
$('.navigation ul a').each(function() {
 var el = $(this);
 $('<option />', {
    "value"   : el.attr('href'),
    "text"    : el.text()
 }).appendTo('.navigation select');
});
// Navigate to page on select option
$('.navigation select').change(function() {
  window.location = $(this).find('option:selected').val();
});
// Hide navigation list
$('.navigation ul').hide(); 

最佳答案

你可以使用hasClass方法:

 $('<option />', {
    "value"      : el.attr('href'),
    "text"       : el.text(),
    "selected"   : el.hasClass('selected')
 }).appendTo('.navigation select');

http://jsfiddle.net/5V5rY/

关于javascript - 使用 jQuery 根据无序列表选择选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13962824/

相关文章:

javascript - 在不知道最小值/最大值的情况下标准化数组值的范围

javascript - 将一个计算数组中对象数量的函数放入另一个函数中

javascript - jQuery $.ajax 不将变量传递给 PHP

javascript - ASP.NET:在母版页、ResolveUrl 中使用 head.js

javascript - 如何使两个或多个 html 元素在可编辑区域中表现为一个单元

Javascript Service Worker 在网络超时后使用缓存

jQuery AJAX 数据多参数

jquery - 动画切换滑动菜单

javascript - Colorbox.js 内联内容不会显示

javascript - 滚动经过每个部分时更改 SVG 的颜色