2013-05-25 24 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); 
} 
相关问题