3

私がこのようなものを持っていると仮定します:

<div class="testdiv">
    <a href="/link1">link 1</a>
</div>
<div class="testdiv">
    <a href="/link2">link 2</a>
</div>
<div class="testdiv">
    <a href="/link3">link 3</a>
</div>
<div class="testdiv">
    <a href="/link4">link 4</a>
</div>

ここで、属性を持つ子を持つクラスを除くすべて<div>のクラスを選択したいのですが、jQuery でそれを行うにはどうすればよいですか?testdivdiv<a>href="/link3"

私はこれを行うことができることを知っています:

$('div.testdiv')
4

3 に答える 3

7

:not+を使用:hasすると、1 つのセレクターで簡単に実行できます。

$('div.testdiv:not(:has(a[href="/link3"]))')

属性 (「CSS 識別子」) の値を引用しない場合は、/2 つのバックスラッシュ ( ) でスラッシュ ( )をエスケープする必要があります\\

$('div.testdiv:not(:has(a[href=\\/link3]))')

ライブデモ

div にアンカーが 1 つしかない場合は、次のように使用できます。

$('div.testdiv:has(a[href!="\\/link3")')
于 2012-05-19T22:08:35.380 に答える
1

これに使用できますfilter

var elements = $('.testdiv').filter(function(){
    return !$(this).find('a[href=\\/link3]').length;
});
于 2012-05-19T22:06:03.817 に答える
-2
$('div.testdiv a[href^=/link3').parents();
于 2012-05-19T22:03:53.803 に答える