
如何在不使用querySelectorAll 的情況下按屬性檢索元素
問題:
在以下情況下如何通過特定屬性檢索元素querySelectorAll 方法不可用,例如在IE7 等較舊的瀏覽器中?
原生解決方案:
在缺少querySelectorAll 的瀏覽器中,可以實作自訂函數來實現類似功能:
1 2 3 4 5 6 7 8 9 10 11 | <code class = "javascript" > function getAllElementsWithAttribute(attribute) {
const matchingElements = [];
const allElements = document.getElementsByTagName( '*' );
for (let i = 0; i < allElements.length; i++) {
if (allElements[i].getAttribute(attribute) !== null) {
matchingElements.push(allElements[i]);
}
}
return matchingElements;
}</code>
|
登入後複製
範例:
要擷取具有「data-foo」屬性的元素,可以使用下列程式碼:
1 | <code class = "javascript" > const elementsWithFooAttribute = getAllElementsWithAttribute( 'data-foo' );</code>
|
登入後複製
以上是如何在舊版瀏覽器中按屬性選擇元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!