我有一个元素#xxx
,我必须选择所有子级(任何级别)和此元素的所有父级。我不想选择元素本身。
到目前为止,我一直在使用这个jquery代码,但我很确定必须有一种方法可以提高效率(可能使用addBack):
$("#xxx").find("*").add($("#xxx").parents())
你是否建议不使用add()
的任何其他选择因为我认为这个选择器效率不高,因为它再次在内部查询#xxx。我认为使用addBack()
会更好,因为它不会导致另一个元素#xxx的搜索。
答案 0 :(得分:1)
第一次回答,如果这不是正确的方法,请告诉我。
但这不是你原来问题的直接答案,而是你在评论中提到的问题:
如果我删除此选择器并将其替换为更简单的东西,则滚动变得非常平滑。
由于您正在重复使用选择器引用,因此您可以将选择器$('#xxx')存储为变量。由于初始查找是选择器中最重的部分。
const $xxx = $('#xxx');
$xxx.find("*").add($xxx.parents())