HTMLは次のとおりです。
<div>
<h3>text</h3>
</div>
<div>
<h3>moretext</h3>
</div>
<div>
<h3>123</h3>
</div>
JS は次のとおりです。
var rv1_wlength = $("div").filter(function() {
return $(this).find("h3").filter(function () {
return $(this).text() != "123";
}).length;
});
var rv1_wolength = $("div").filter(function() {
return $(this).find("h3").filter(function () {
return $(this).text() != "123";
});
});
var rv2 = $("div").find("h3").filter(function() {
return $(this).text() != "123";
});
alert(rv1_wlength.text()); // text
// moretext
alert(rv1_wolength.text()); // text
// moretext
// 123
alert(rv2.text()); // textmoretext
最初の 2 つのメソッドが要素を各行に出力するのに対し、2 番目のメソッドは要素を連結する理由がわかりません。rv2
jQuery オブジェクトです。では、最初の 2 つ (rv1_wlength
とrv1_wolength
) は何ですか?
さらに、長さプロパティを含めると、要素のフィルタリングに大きな違いが生じる理由がわかりません。2 番目のメソッドは、すべての要素を返すため、何もしません。最初の方法は、長さプロパティを追加するだけで、要素を正しくフィルター処理します。行ごとの説明が非常に欲しいです。
フィードバックをいただければ幸いです。ありがとうございました。