[英]Is it possible to get element id by attribute's value and set an attribute to the parentNode
我正在嘗試通過href值獲取元素,並獲取該元素的parentNode,最后將parentNode設置為屬性。
這是解釋我要做什么的代碼:
var uri = "index.html"; //just for the example
var elementA = document.querySelector("." + uri);
var elementLi = elementA.parentNode;
elementLi.setAttribute("class", "current-menu-item");
這是說的問題:未捕獲的TypeError:無法讀取null的屬性“ parentNode”
我讀過其他幾個與我類似的問題,但沒有一個解決。 據我了解, querySelector
沒有提供您可以對元素執行的所有功能,因為此方法返回靜態列表。
我可以在這里做些什么嗎?
如果我的問題不清楚,請發表評論,讓我知道我會盡力改善問題
不推薦使用屬性節點,只需使用setAttribute
方法 :
elementLi.setAttribute("class", "current-menu-item");
但是,您的實際問題是elementLi
undefined
,因為elementA
不是元素節點querySelectorAll
返回需要循環的節點集合!
var uri = "index.html"; //just for the example
var elementsA = document.querySelectorAll("a[href="+JSON.stringify(uri)+"]");
for (var i=0; i<elementsA.length; i++) {
var elementLi = elementsA[i].parentNode;
elementLi.setAttribute("class", "current-menu-item");
}
如果使用querySelector
僅獲取單個元素,則它可能仍為null
,因此最好檢查一下:
var uri = "index.html"; //just for the example
var elementA = document.querySelector("a[href="+JSON.stringify(uri)+"]");
if (elementA) {
var elementLi = elementA.parentNode;
elementLi.setAttribute("class", "current-menu-item");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.