元素匹配
检测当前元素是否和 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'));