如何使用jQuery选择所有子元素(任何级别)和某个元素的父元素

时间:2017-08-25 13:26:52

标签: javascript jquery

我有一个元素#xxx,我必须选择所有子级(任何级别)和此元素的所有父级。我不想选择元素本身。

到目前为止,我一直在使用这个jquery代码,但我很确定必须有一种方法可以提高效率(可能使用addBack):

$("#xxx").find("*").add($("#xxx").parents())

你是否建议不使用add()的任何其他选择因为我认为这个选择器效率不高,因为它再次在内部查询#xxx。我认为使用addBack()会更好,因为它不会导致另一个元素#xxx的搜索。

1 个答案:

答案 0 :(得分:1)

第一次回答,如果这不是正确的方法,请告诉我。

但这不是你原来问题的直接答案,而是你在评论中提到的问题:

  

如果我删除此选择器并将其替换为更简单的东西,则滚动变得非常平滑。

由于您正在重复使用选择器引用,因此您可以将选择器$('#xxx')存储为变量。由于初始查找是选择器中最重的部分。

const $xxx = $('#xxx');
$xxx.find("*").add($xxx.parents())

Performance of jQuery selectors vs local variables