这是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
我不明白为什么前两种方法在每一行打印元素,而第二种方法将它们连接起来。rv2
是一个 jQuery 对象。那么,前两个(rv1_wlength
和rv1_wolength
)是什么?
此外,我不明白为什么包含长度属性会在过滤元素时产生所有差异。第二种方法什么都不做,因为它返回所有元素。第一种方法,唯一的改变是增加了长度属性,正确地过滤了元素。我非常想要逐行解释。
我真诚地感谢任何反馈。谢谢你。