2012-12-15 66 views
0

我一直在努力的目標一個.parents()jQuery的找到。家長()標籤和addClass

我使用此代碼標籤 -

$('#nav li li:has(a.current)').parents('li').find('a').addClass('current'); 

它針對家長標籤,並添加正確的類,但它也將類添加到所有的兄弟姐妹。

爲什麼我也得到兄弟姐妹的任何提示?

Check out the fiddle

回答

3

這聽起來像你只想要A那是父母的孩子,切換find()children()

$('#nav li li:has(a.current)').parents('li').children('a').addClass('current'); 
+0

是啊,謝謝。發現似乎沒有道理。 – Nik

+0

不確定你想要哪個元素...可能需要更多的細化取決於你在做什麼 – charlietfl

+0

不,這是我的目標,我想瞄準父母li的答案。它只是顯示一個當前狀態,當一個兄弟是最新的。 – Nik

1

開始與.current錨,找到最接近UL周圍的名單,找到父母LI,然後使用children('a')直接獲得兒童錨,因爲find()會找到所有錨,並添加類,如下所示:

$('#nav a.current').closest('ul').parent('li').children('a').addClass('current');​ 

FIDDLE

+0

這也適用,對此和@charlietfl答案有什麼好處? – Nik

+0

@Nik - 它不使用僞選擇器,它不會搜索整個DOM來獲取父李元素。 – adeneo