2

HTML:

<div id="a">
    <span></span>
    <img />
</div>

jQuery:

var a = $("#a").children().find("img"); 

その表示a.length = 0。ここで問題は何ですか?

4

2 に答える 2

6

これを使って:

$("#a").find("img");

findセレクターの子孫を検索しますが、直接<img>の子の子孫ではありません。<div id="a"

find ドキュメント

説明:セレクター、jQueryオブジェクト、または要素によってフィルター処理された、一致した要素の現在のセット内の各要素の子孫を取得します。

ライブデモ

より効率的なセレクターでも同じ結果が得られることに注意してください。

$("#a img")...

descendantセレクタードキュメント

説明:特定の祖先の子孫であるすべての要素を選択します。

ライブデモ

于 2012-04-22T09:10:50.777 に答える
5

children関数は、divのすべての子ノードを取得し、find oneは、「img」という名前の子の子孫を検索しようとします。明らかにそれは存在しません。gdoronが指摘しているように、children()の部分を省略する必要があります。

気付いていない場合は、JQueryのドキュメントを確認してください。これは非常に優れたリファレンスです。

http://api.jquery.com/category/traversing/

于 2012-04-22T09:13:59.633 に答える