簡體   English   中英

是否可以通過屬性的值獲取元素ID並將屬性設置為parentNode

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM