我正在开发一个需要响应的网站。我想将导航转换为 <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...
});
});