2012-11-13 71 views
1

我想這種問題對於你們中的一半人來說很容易,但是我堅持了幾個小時,所以我非常感謝你們的幫助。這是我一直在努力的:

我需要選擇包含href屬性的所有鏈接元素,其結尾爲.pdf。我想出了這個解決方案:

$('a[href$=".pdf"]').filter(function() { 
    return $(this).parent().has('ul'); 
    }) 
}) 

然而,這似乎$(this).parent().has('**anytag**')總是返回true不管是什麼"anytag"是(我用螢火蟲檢查這一點)。 所以,我的代碼被破壞,但我不明白爲什麼它有這種意外的行爲。你能指出我在這裏有什麼誤解嗎?

+0

我們需要看到一些HTML樣本,以幫助 –

+1

嘗試'返回$(本).parent()已經(」。 ul')。length> 0' – Kyle

回答

3

.has()本身是一個過濾器函數。它返回一個新的jQuery集合,其元素具有與選擇器匹配的元素作爲其後代。由於jQuery集很完整,在.filter()中返回它們沒有效果,因爲沒有任何東西會被濾除。

你也可以使用該:has選擇與孩子選擇組合:

$(':has(ul) > a[href$=".pdf"]');