2
我正在開發一個需要響應的網站。我想將導航轉換爲<select>
。 <nav>
以及<nav>
內部的任何數量的<ul>
都可以有任意數量。我用for loops
來計算<nav> and <ul> inside <nav>
的數量。使用JQuery移動版本導航創建選擇/下拉列表
一個正在生成,另一個不生成,請幫我解決這個問題。
我正在開發一個需要響應的網站。我想將導航轉換爲<select>
。 <nav>
以及<nav>
內部的任何數量的<ul>
都可以有任意數量。我用for loops
來計算<nav> and <ul> inside <nav>
的數量。使用JQuery移動版本導航創建選擇/下拉列表
一個正在生成,另一個不生成,請幫我解決這個問題。
它不工作,因爲你正在尋找.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...
});
});
不錯,但有時也沒有得到檢測
你怎麼知道'nav'沒有被檢測到? '$('nav')'是非常直接的... – poncha
我只是用find()測試它,但仍然存在同樣的問題。請你在小提琴中測試一次,因爲我處於很大的麻煩中。請檢查我的問題,我有一個小提琴鏈接。 – Subhajit