使用以下HTML,我如何选择DIV depper(没有子女)?
我认为我可以使用n-last-child但是不行,因为所有div都有最后一个(也是第一个)! :d
PD:不能在DIV中更深入地使用ID或CLASS属性(因为它们是Web中的HTML存在文件)
HTML:
<div class="base">
<div>
<div>
<div>
<div>
<!-- recursive divs (quantity not defined...) -->
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:5)
遗憾的是,CSS选择器无法查看父元素,因此您无法看到哪些元素没有div
作为子元素。
如果您使用的是jQuery,可以这样做来查找元素:
$('.base :not(:has(*))').addClass('deepest');
答案 1 :(得分:4)
你必须使用Javascript。这是一个使用jQuery的例子:
$('.base *').filter(function(){
return ! $(this).find('> *').length;
});
在此处查看:[{3}}
更新:如果您愿意,可以创建自己的:sterile
选择器。这是一个例子:
jQuery.expr[':'].sterile = function(el) {
return ! el.children.length;
};
然后你可以像使用任何其他伪选择器一样使用它:
$('.base :sterile');
这是小提琴:http://jsfiddle.net/E6sec/
P.S。我使用http://jsfiddle.net/FBw5q/后的原生el.children
。但是,IE&lt; 9将包含评论children
。如果这涉及到你,你可以使用jQuery的children()
方法。
答案 2 :(得分:2)
你需要Javascript。只有CSS才能实现