私は、html文字列からjQueryオブジェクトを作成していて、特定のクラスでその中のすべての要素を選択する必要がある状況に遭遇しました。次のjQueryセレクターが両方の要素を返さないのはなぜですか?
私が奇妙なことは、私が使用している選択メカニズムのタイプに応じて、どちらかが返ってくることです。テストケースがここに示されている:この例では
var tmpl = '<ul><li class="foo">TEST</li></ul><div class="foo">BAR</div>';
console.log($('.foo', tmpl)); //[<li class="foo">TEST</li>]
console.log($(tmpl).find('.foo')); //[<li class="foo">TEST</li>]
console.log($(tmpl).filter('.foo')); //[<div class="foo">BAR</div>]
、ULでli要素と非子孫DIVの両方がクラス「foo」を持っています。この例では、.fooセレクタを使用してコンテキストをテンプレート文字列に設定します。次に、文字列に.find()を使用します。最後に、文字列に.filter()を使用します。
セレクタメカニズムが動作している理由と、最初に述べた目標を達成する方法について説明できますか?
意味があります。答えをありがとう。 – Geuis