我有这个菜单:
<nav>
<ul>
<li><a class="index" href="/">Home</a></li>
<li><a href="#">Other</a>
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</li>
<li><a class="news" href="#">News</a></li>
</ul>
</nav>
我需要在页面加载时使用 jQuery 生成一个下拉(选择)列表。
到目前为止,我有:
<script>
$(document).ready(function() {
//build dropdown
$("<select />").appendTo("nav");
// Create default option "Go to..."
$("<option />", {
"selected": "selected",
"value" : "",
"text" : "Go to..."
}).appendTo("nav select");
// Populate dropdowns with the first menu items
$("nav li a").each(function() {
var el = $(this);
$("<option />", {
"value" : el.attr("href"),
"text" : el.text()
}).appendTo("nav select");
});
//make responsive dropdown menu actually work
$("nav select").change(function() {
window.location = $(this).find("option:selected").val();
});
});
</script>
此 jQuery 代码在考虑子菜单项的情况下完成这项工作,但生成的列表不会在下拉列表中缩进子菜单项。
我想要的是下拉列表项(如果它们实际上是原始菜单子菜单项)前面的“ - ”,因此可以轻松识别它们。
希望这是有道理的。
请指教,谢谢。