javascript - 确定将哪些 CSS 选择器应用于元素

标签 javascript css dom

有没有办法确定选择器当前是否已应用于给定元素?

我知道可以遍历所有 CSS 选择器,并测试每个选择器是否适用。但我不确定 Firebug 和其他检查员是否采用这种方式。

编辑: 我需要一种使用 JS 动态执行此操作的方法。

最佳答案

您可以使用 document.querySelectorAll 检查元素实例是否与选择器匹配和 Array.prototype.indexOf :

function elementMatchesSelector(element, selector) {
    return Array.prototype.indexOf.call(document.querySelectorAll(selector), element) > -1;
}

当然这只适用于支持上述方法的现代浏览器。


或者您可以使用 Element.matches :

function elementMatchesSelector(element, selector) {
    var fn;
    if (!element) {
        return false;
    }
    fn = element.matches || element.mozMatchesSelector || element.msMatchesSelector || element.webkitMatchesSelector;
    if (fn) {
        return fn.call(element, selector);
    }
    return false;
}

关于javascript - 确定将哪些 CSS 选择器应用于元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488253/

相关文章:

javascript - 当突变观察者添加到主 html 文档时是否支持 iframe 文档?

javascript - 如何通过来源获取图像?

javascript - Android 等效于 HTML5 Canvas CompositeOperation

javascript - 为什么我的任何浏览器都不支持地理定位?

html - 在 html 和 CSS 中定位 div

javascript - 如何有选择地将鼠标事件传递给底层 svg 元素

graph-visualization - 可视化 HTML 文档树(DOM 树)的工具

javascript - 发布者域验证失败。服务器返回了意外的内容类型 header 值

jquery - 悬停,影响其他元素并显示背景图像

html - CSS float 属性意外行为