连接“ find”,“ filter”和“ closest”的jQuery选择器/函数

时间:2019-05-16 02:45:12

标签: javascript jquery css-selectors jquery-selectors

我有一个变异观察者,它返回添加到网页中的元素。
这些元素我根本无法控制。

在给定这些元素的情况下,我需要在汇总的范围内从这些元素中找到某个类的所有实例(如“ .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()完成了部分工作。它连接findfilter。有什么方法可以将closest连接在一起?

0 个答案:

没有答案