我知道在搜索元素时使用 find 可能会获得更好的性能
$('#parent').find('.child');
>$('#parent .child');
但是有没有我们必须使用的条件来find()
代替selector
?
为什么人们投票结束这个问题?
find() 必须有特定的创建原因,我只想知道为什么。
我知道在搜索元素时使用 find 可能会获得更好的性能
$('#parent').find('.child');
>$('#parent .child');
但是有没有我们必须使用的条件来find()
代替selector
?
为什么人们投票结束这个问题?
find() 必须有特定的创建原因,我只想知道为什么。
.find()
当您已经拥有父 DOM 元素或父 jQuery 元素时最有用。我经常看到它在事件处理程序中这样使用:
$(".whatever").click(function() {
// change the label in this section to red
$(this).closest("section").find("label").css("color", "red");
});
或者,由于其他原因,当您已经有一个 jQuery 对象并且您只想在其中找到子对象并对其进行操作时,它很有用,特别是涉及链式操作:
// jQuery object previously built for other reason
var items = ...;
// find all child labels and remove a class
items.closest(".item").find("label").removeClass("active");
虽然,可以.find()
通过在 jQuery 构造函数中使用可选的上下文参数来完全避免该方法,但它并不方便,也不适合链接,而且 jQuery 的一半首先是为了让事情变得更快更容易,所以我们有.find()
。