<p data-foo="bar">
你怎么做相当于
document.querySelectorAll('[data-foo]')
querySelectorAll在哪里not available?
我需要至少在IE7中有效的 native 解决方案。我不在乎IE6。
最佳答案
您可以编写一个运行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');