2017-04-05 139 views
0

我正在爲我的僱主使用的內容管理平臺上託管的大量定製頁面開發導航解決方案。JQuery。每個類都不循環遍歷所有元素

我想建立一個函數,循環遍歷具有特定類的所有元素,讀取數據存儲值,然後將基於該值的外部資源加載到容器div中。

雖然此函數適用於FIRST匹配,但它在此處停止 - 不會迭代文檔的其餘部分。這個函數本身在一個單獨的$(document).ready(function()塊中被調用,因爲我有幾個函數在頁面加載時運行。

編輯:有過時的代碼可以玩不同的東西,現在的代碼如下。

的Javascript:

function loadNavigation() { 
$('.topLevelNav').each(function() { 
var topLevelNavIndex = $(this).data('nav-index')+1; 
var topLevelNavItem = spaceMainContent + " table tr:nth-child(" + topLevelNavIndex + ") td:nth-child(2)"; 
$(this).children().first().load(topLevelNavItem); 
}); 
} 

HTML:

<div class="topLevelNav" data-nav-index="1">Main 
<div>Container</div> 
<div class="subLevelNav" data-nav-index ="3">Sub<div>Container</div></div> 
<div class="subLevelNav" data-nav-index ="4">Sub<div>Container</div></div> 
<div class="subLevelNav" data-nav-index ="5">Sub<div>Container</div></div> 
<div class="subLevelNav" data-nav-index ="6">Sub<div>Container</div></div> 
<div class="subLevelNav" data-nav-index ="2">Sub<div>Container</div></div> 
</div> 
<div class="topLevelNav" data-nav-index ="2">Main 
<div>Container</div> 
<div class="subLevelNav" data-nav-index ="3">Sub<div>Container</div></div> 
<div class="subLevelNav" data-nav-index ="5">Sub<div>Container</div></div> 
<div class="subLevelNav" data-nav-index ="2">Sub<div>Container</div></div> 
</div> 
<div class="topLevelNav" data-nav-index ="3">Main 
<div>Container</div> 
<div class="subLevelNav" data-nav-index ="2">Sub<div>Container</div></div> 
</div> 

我不能爲我的生命弄清楚爲什麼它是第一場比賽後停止,但我也不是一個聰明的人。有什麼想法嗎?

+3

您的代碼'$('。topLevelNav')。each'應該遍歷所有'.topLevelNav'元素,其中我確切地看到一個 – j08691

+0

您是否確實擁有多個'topLevelNav'類' div'還是所有其他的'topLevelNav2'類? –

+0

您只有一個.topLevelNav類定義。 – cosmoonot

回答

0

如果你想處理sublevelnavs,你的選擇器是錯誤的。它更改爲

$('.topLevelNav .subLevelNav').each(function() { 

,如果你想通過只在頂層subLevelNavs遍歷一個

$('.subLevelNav').each(function() { 
如果您想通過每個子級導航遍歷