元素匹配

检测当前元素是否和 css 选择器匹配


检查元素是否与 CSS 选择器匹配,现代浏览器支持match()matchesSelector()DOM方法。 这是其他浏览器的polyfill:


// matches polyfill
this.Element && function(ElementPrototype) {
    ElementPrototype.matches = ElementPrototype.matches ||
    ElementPrototype.matchesSelector ||
    ElementPrototype.webkitMatchesSelector ||
    ElementPrototype.msMatchesSelector ||
    function(selector) {
        var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;
        while (nodes[++i] && nodes[i] != node);
        return !!nodes[i];
    }
}(Element.prototype);
      

支持 DOM4 的浏览器使用优化的内部方法,该方法要快得多。 在扩展本地对象时,可以这样做兼容处理。 现在,您可以在任何DOM元素上调用match():


var el = document.querySelector('span');
console.log(el.matches('.foo'));