2012-11-11 68 views
0

使用此的jsfiddle http://jsfiddle.net/fGTqF/的兒童和兒童的子元素我怎麼能顯示下銷售的子類的子類?例如有下SALE>腰帶,和銷售>附件類,但我想不出如何定位他們出示。下面的代碼會顯示SALE下的子類別,但我需要它來顯示SALE子類別的子類別。如何內部列表

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function(){ 
    return $.trim($(this).text()) === $currentCategory 
}).addClass('active').eq(1).next().show() 
+2

不建議打開元素文本,而是使用ID或類或現代數據屬性。 –

+0

您可能希望通過[整理](http://infohound.net/tidy/)是HTML開始。這裏是什麼樣子後:http://jsfiddle.net/dandv/fGTqF/2/ –

+0

如果需要顯示所有的子類別,然後不要把他們藏在首位。 –

回答

0

以下將顯示與文本Sale的錨點後的所有項目。

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function() { 
    return $.trim($(this).text()) === $currentCategory; 
}).addClass("active").next().show();​​ 

什麼是可能無意中你的代碼錯誤是,有與文本Sale(在這方面)沒有第二個元素。請記住.eq()使用從零開始的索引。那麼究竟是什麼,你可能找(如果你真的想以限制搜索):

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function() { 
    return $.trim($(this).text()) === $currentCategory; 
}).addClass("active").eq(0).next().show();​​ 

的一兩件事,我不明白,但是,爲什麼你會添加類,然後限制數組,所以與選擇器和過濾器匹配的所有元素都將是紅色的,但只有其中一個元素會顯示其項目。如果你想解決這個問題,只需使用:

var $currentCategory = "Sale"; 
var s = $(".sideCatMenu a").filter(function() { 
    return $.trim($(this).text()) === $currentCategory; 
}).eq(0).addClass("active").next().show();​​ 
+0

對不起,我的jquery技能現在是最小的。這兩個示例都沒有達到我的目的,即顯示SALE下所有子類別的子類別和子類別。他們最初是由PHP腳本,我無法控制的,因爲我只可以訪問HTML不是PHP腳本隱藏。我正在使用JavaScript向他們展示我的願望。任何其他想法? – Jesse

+0

你想顯示他們,他們被點擊的時候,等? – MateyY

+0

不,我試圖在頁面加載currentCategory變量時自動顯示它們是通過實際查看頁面中的breadcrumb鏈接來確定的。 – Jesse