2013-05-25 50 views
0

假設網站包含多個div元素,其中一些div元素有一個img子元素,而另一些元素沒有。是否有可能在一個querySelector聲明中選擇擁有img孩子的人?如果是孫子呢?使用JS的querySelector找到一個沒有任何後裔子元的div

它是否可以通過:not()僞選擇器?

+1

「否」。你需要一個「:contains()」選擇器,它支持DOM節點,而不是文本。見http://stackoverflow.com/questions/2000582/css-selector-for-foo-that-c​​ontains-bar – Matt

+1

[':empty'](https://developer.mozilla.org/en-US/docs/ Web/CSS /:empty)可能適合您的特定情況。 –

回答

2

這是不可能只用一個querySelectorAll語句,但您可以通過有孩子的IMG和使用結果NodeList獲取父的div的div循環:

var imgs = document.querySelectorAll("div > img"), 
    divs = []; 
for (var i = 0; i < imgs.length; i++) { 
    divs.push(imgs.parentNode); 
} 
相關問題