javascript - 找出 querySelector 的哪一部分与给定元素匹配

标签 javascript jquery

是否有可能找出 querySelector 的哪一部分与 DOM 中的特定元素匹配?

假设您有以下查询:

'h1,h2,h3,h4.custom-bg,div'

如果您使用 document.querySelectorAll,我如何回溯负责在 DOM 中查找元素的查询片段?

最佳答案

您可以使用Element.matches ,其中有 reasonable support截至目前。

The Element.matches() method returns true if the element would be selected by the specified selector string; otherwise, returns false.

你会使用这样的东西

var str = 'h1,h2,h3,h4.custom-bg,div';
[].forEach.call(document.querySelectorAll(str), function(elm){
   var slctrMatched = str.split(",").filter(elm.matches);
   console.log(slctrMatched.join(" "));
});

我们正在使用Array.forEach,但更重要的是,Array.filter,它是通过Element.matches方法传递的,所以它过滤掉选择器,返回一个数组,我们通过 Array.join

将其连接到控制台

关于javascript - 找出 querySelector 的哪一部分与给定元素匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648007/

相关文章:

Javascript 从月份和年份字符串中获取新日期

javascript - 具有 SPA 站点 CORS 问题的 IdentitySever

javascript - 将文件图像保存到本地存储 HTML

javascript - jQuery 读取 JSON 数据

c# - 在 signalr 中管理多个浏览器选项卡

javascript - 使用 jquery 覆盖 anchor 标记的默认行为

javascript - 命令按钮不响应 JS 函数

javascript - 如何使用 JQuery 来选择单选按钮的选中值?

javascript - 如何在 JavaScript 中存储解析的 YAML 文件的行号?

javascript - 不允许将顶部框架导航到数据 URL : JsPDF