0

我知道在搜索元素时使用 find 可能会获得更好的性能

$('#parent').find('.child');>$('#parent .child');

但是有没有我们必须使用的条件来find()代替selector?


为什么人们投票结束这个问题?

find() 必须有特定的创建原因,我只想知道为什么。

4

1 回答 1

1

.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()

于 2013-04-01T03:41:58.043 回答