jQuery选择器 - 获取作为多个div的父级的div

时间:2013-01-22 05:58:48

标签: jquery

我试图让页面上的所有元素都有多个div作为子元素。例如,在以下代码中:

<div id="1">
    <div id="1a">
        <div id="1aa">

        </div>
        <div id="1ab">

        </div>
    </div>
    <div id="1b">

    </div>
</div>
<div id="2">
    <div id="2b">

    </div>
</div>

我的函数会返回#1#1a,因为它们都包含2个子div。

我试过这个:

$('div > div + div').css("border", "1px solid red");

但这不仅不能按预期工作,我还希望它在有5,6,7 /尽可能多的子div时应用,前提是>=2

实现这一目标的最佳途径是什么?

3 个答案:

答案 0 :(得分:6)

您可以使用.filter()

$('div').filter(function() {
    return $(this).children('div').length >= 2;
}).css('border', '1px solid red');

答案 1 :(得分:2)

...替代地

$("div:has(>div:eq(1))")

jsFiddle

向此选择器添加注释以解释其目的是有益的,因为它不能立即清楚其意图是什么。

它不使用标准CSS,因此无法直接委托给querySelectorAll()。如果您发现这是性能问题,只需将其拆分为其块(可能使用filter()来减少集合)。

答案 2 :(得分:0)

你可能想要这样的东西:http://jsfiddle.net/aJSbA/

if ($('div:has(div)').length) { // this will check if div has child div elem
    $('div > div').css("border", "1px solid red"); // applies css to its direct child
}