我正在开发一个需要响应的网站。我想将导航转换为 <select>
. 里面可以有任意数量<nav>
和任意数量。我已经用来计算.<ul>
<nav>
for loops
<nav> and <ul> inside <nav>
一个正在生成,另一个没有生成,请帮我解决这个问题。
我正在开发一个需要响应的网站。我想将导航转换为 <select>
. 里面可以有任意数量<nav>
和任意数量。我已经用来计算.<ul>
<nav>
for loops
<nav> and <ul> inside <nav>
一个正在生成,另一个没有生成,请帮我解决这个问题。
它不起作用,因为您正在寻找.children('ul')
并且这仅包括直系后代,但是您的第二nav
个div
包裹在ul
...
您可以更改在任何深度查找后代的.children
调用.find
- 剪这里 -
替代解决方案:
$('nav').each(function(navIndex, navElement) {
$(this).find('ul').each(function(ulIndex, ulElement) {
var $sel = $('<select name="nav'+navIndex+'-'+ulIndex+'" />');
$sel.append('<option value="#">Go to...</option>');
$sel.change(function() { document.location.href = this.value; });
$(this).find('li>a').each(function(aIndex, aElement) {
$sel.append('<option value="' + this.href + '">' + $(this).text() + '</option>');
});
$(this).after($sel); // place this select after the ul...
});
});