基于选择器的元素数组搜索

时间:2018-07-22 23:26:47

标签: javascript dom

是否可以像document.querySelectorAll(selectors)那样执行搜索,但要针对Node对象数组而不是整个文档进行搜索?

我有一个Node对象的预选列表,我想要一个可以使用相同的selectors参数,但在数组内部进行搜索的函数。

基本上,这是一个问题,是否可以进行node.match(selectors)检查,以验证节点是否与选择器匹配,然后我可以简单地遍历节点列表。但是我找不到这种匹配检查是否可行。

所以我想要这样的东西:

function querySelectorInArray(nodeArray, selectors) {
    return nodeArray.filter(function(node) {
        return node.match(selectors); // this line is what I want, but dunno how
    });
}

事后

这会是个好主意吗?我在想,querySelectorAll仅解析一次selectors,但我会对数组中的每个元素执行一次。会对性能造成不利影响吗?还是有一种避免这种情况的方法,例如预先准备selectors并传入已知对象?

2 个答案:

答案 0 :(得分:1)

您可以使用Element#matches

[Route("API/[controller]/[action]")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]

答案 1 :(得分:1)

您只需将每个节点添加到DocumentFragment中,然后使用querySelectorDocumentation