本文介绍了当querySelectorAll不可用而不使用库时,按属性获取元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<p data-foo="bar">
如何处理相当于
document.querySelectorAll('[data-foo]')
的的?
我需要一个至少在IE7中工作的本机解决方案。我不在乎IE6。
I need a native solution that works at least in IE7. I don’t care about IE6.
推荐答案
你可以编写一个运行getElementsByTagName('*')的函数,只返回具有data-foo属性的元素:
You could write a function that runs getElementsByTagName('*'), and returns only those elements with a "data-foo" attribute:
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');
这篇关于当querySelectorAll不可用而不使用库时,按属性获取元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!