Javascript 检查元素是否与选择器匹配

Javascript 检查元素是否与选择器匹配,javascript,Javascript,我已从创建了一个方法,用于检查元素是否与选择器匹配: function matches(elm, selector) { var el = angular.element(elm)[0]; var matches = (el.document || el.ownerDocument).querySelectorAll(selector), i = matches.length; while (--i >= 0 && matches.i

我已从创建了一个方法,用于检查元素是否与选择器匹配:

function matches(elm, selector) {
    var el = angular.element(elm)[0];
    var matches = (el.document || el.ownerDocument).querySelectorAll(selector),
        i = matches.length;
    while (--i >= 0 && matches.item(i) !== el) ;
    return i > -1;
}
这适用于ID、类等,但似乎不适用于标记,请参见屏幕截图:


您可以看到元素确实与选择器匹配,但函数返回false。我在这里做错了什么?

为什么不能使用标准的
元素#matches
?只是想知道。恐怕是浏览器兼容性。你试过不同的浏览器吗?如果检查
匹配项
列表,您会看到什么?iFrame是否有任何可能?angular.element(elm)[0]的含义是什么?如果将该行更改为
var el=elm?@torazaburo-结果是一样的。也就是说对其进行规范化,以便它可以处理DOM元素和Angular元素。