IE9 之前的浏览器缺乏强大的 querySelectorAll() 方法,当你需要根据属性检索元素时会遇到困难具体属性。为了解决这个问题,让我们探索一个适用于 IE7 及更高版本的本机解决方案。
我们可以通过利用 getElementsByTagName 方法来模拟 querySelectorAll 的功能。让我们创建一个名为 getAllElementsWithAttribute 的函数来查找具有特定属性的元素:
<code class="js">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 has the attribute. Add it to the array. matchingElements.push(allElements[i]); } } return matchingElements; }</code>
此函数将属性名称作为参数并迭代文档中的所有元素。对于每个元素,它检查指定的属性是否存在且不为空。如果是,则将该元素添加到匹配元素的数组中。
要检索具有 data-foo 属性的所有元素,只需调用:
<code class="js">getAllElementsWithAttribute('data-foo');</code>
此方法提供了在缺少 querySelectorAll 的浏览器中通过属性检索元素的本机解决方案,确保与 IE7 及更高版本的兼容性。
以上是如何在 Pre-querySelectorAll 浏览器中按属性检索元素?的详细内容。更多信息请关注PHP中文网其他相关文章!