jQueryで、そのdivに含まれる子div要素ではなく、div要素内のリンクのみを選択するにはどうすればよいですか?
<div>
<a>Link 1</a>
<a>Link 2</a>
<div>
<a>Not these 1</a>
<a>Not these 2</a>
</div>
</div>
jQueryで、そのdivに含まれる子div要素ではなく、div要素内のリンクのみを選択するにはどうすればよいですか?
<div>
<a>Link 1</a>
<a>Link 2</a>
<div>
<a>Not these 1</a>
<a>Not these 2</a>
</div>
</div>
直接の子セレクターを使用 >
例えば
$('div>a')
更新: ロボーグ氏をなだめるために
最初の div 内のネストされた要素内にアンカーがある場合は、次のように動作します。これはフィルターを使用して、ネストされた div ではなく、親 div が実際にターゲットにしている div であることを確認します。
var firstDivAnchors = $('div a').filter( function(){
return $(this).closest('div').is('#yourDiv');
});
ターゲットにしたい特定の div がある場合は、次を試すことができます。
$("div#mydiv a :not(div a)");
編集:さらにコンテキスト(HTML)を投稿していただければ幸いです:)
ダニタは正しい方向に進んでいたと思いますが、彼女のサンプルも私にはうまくいきませんでした。ただし、.not()を使用すると、機能しました。
与えられた:
<div id="testdiv">
<span><a>span a</a></span> <a>a</a>
<div>
<a>div a</a><span><a>div span a</a></span>
</div>
</div>
ネストされたdiv内にネストされていないタグのみを検索します。
var test = $('#testdiv').find('a').not('#testdiv div a');
$(test).each(function(){
trace( $(this).html());
});
ネストされたdiv内のタグを無視するだけでなく、スパンにネストされたタグも無視しません。
よく覚えていませんが、children() は動作しませんか?
$(thisDiv).children('a')
docs.jquery.com では次のように記述されています。 children() 一致した各要素セットの一意の直接の子をすべて含む要素セットを取得します。
私も同じ必要があり、周りを見回しました。ここでのいくつかの回答に触発されて、私はこれを書きました
$('div a').not('div div a')
私はこれをテストしましたが、うまくいきます!:-)