1

可能重复:
使用 querySelectorAll 时,有没有办法在不使用 ID 的情况下引用上下文节点的直接子节点?

我要做的是检查给定元素是否与 css 选择器匹配。据我所知,唯一的方法是获取父节点,然后遍历 querySelectorAll 找到的内容,最后检查找到的节点是否与我开始的节点相同。但问题是如何使我必须循环的池更小。

代码:

function querySelectorMatch(node,query) {
  var found = node.parentNode.querySelectorAll(query);
  for (var i = 0; i<found.length; i++) {
    if (found[i] === node) return true;
  }
  return false;
}

好的,这可行,但是我认为循环消耗了太多资源。好的,我可以检查父节点是否具有 id 和/或类,并将其附加到查询中,parent#id.class > query等等……但就受影响的资源而言,它是否会不一样,因为代码无论如何都必须做出相同的决定,但它将更接近硬件......我不知道。

(请不要使用 jQuery。)

4

0 回答 0