3

子要素として複数の 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.

これを達成するための最良の方法は何ですか?

4

3 に答える 3

6

使用できます.filter()

$('div').filter(function() {
    return $(this).children('div').length >= 2;
}).css('border', '1px solid red');
于 2013-01-22T06:05:18.390 に答える
2

あるいは...

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

jsFiddle .

このセレクターにコメントを追加して、その目的を説明すると便利です。これは、その意図がすぐにはわからないためです。

標準の CSS を使用していないため、すぐに委任することはできませんquerySelectorAll()。パフォーマンスの問題であることがわかった場合は、チャンクに分割してください (おそらくfilter()コレクションを減らすために使用します)。

于 2013-01-22T06:08:42.457 に答える
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
}
于 2013-01-22T06:14:22.783 に答える