我有一个变异观察者,它返回添加到网页中的元素。
这些元素我根本无法控制。
在给定这些元素的情况下,我需要在汇总的范围内从这些元素中找到某个类的所有实例(如“ .myClass”之类的选择器)。
.find(".myClass")
(返回所有子级和子级中的所有元素).filter(".myClass")
(在所有给定元素本身中搜索类).closest(".myClass")
(在家长中搜索课程)返回的数组不应重复任何元素。
我知道包含该类的元素都处于同一级别,但是观察者返回的元素的级别绝对没有模式。
到目前为止,这是最好的解决方案,但是当添加的节点来自不同级别(混合在一起)时,我会遇到很多不必要的重复元素:
addedNodes = addedNodes.filter(el => typeof el !== 'undefined');
var $addedNodes = $(addedNodes);
var $foundComments = $addedNodes.find(".myClass").addBack(".myClass");
var $foundParents = $addedNodes.closest(".myClass");
$foundComments = $.merge($foundComments, $foundParents);
请注意,.find().addBack()
完成了部分工作。它连接find
和filter
。有什么方法可以将closest
连接在一起?