小编典典

不使用库而无法使用querySelectorAll时,按属性获取元素吗?

javascript

你怎么做相当于 document.querySelectorAll('[data-foo]') 其中querySelectorAll是不可用? 我需要至少在IE7中有效的本机解决方案。我不在乎IE6。


阅读 294

收藏
2020-04-25

共1个答案

小编典典

您可以编写一个运行getElementsByTagName(’*’)的函数,并仅返回具有“ data-foo”属性的那些元素:

function getAllElementsWithAttribute(attribute)
{
  var matchingElements = [];
  var allElements = document.getElementsByTagName('*');
  for (var i = 0, n = allElements.length; i < n; i++)
  {
    if (allElements[i].getAttribute(attribute) !== null)
    {
      // Element exists with attribute. Add to array.
      matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}

然后,

getAllElementsWithAttribute('data-foo');
2020-04-25