簡體   English   中英

立即獲得第一個子元素

[英]Get immediate first child element

我正在編寫一個Chrome內容腳本擴展程序,我需要能夠定位一個不幸的是,除了其父元素之外沒有唯一標識符的特定元素。

我需要定位parentElement的直接第一個子元素。 console.log(parentElement)完美地報告了兩個子元素/節點,但是無論我做什么,后續的控制台日志(針對childNode的日志)總是返回undefined值。

到目前為止,這是我的代碼
(為了避免混淆和多余的不必要解釋,我已經排除了實際名稱)

function injectCode() {

    var parentElement = document.getElementsByClassName("uniqueClassName");

    if (parentElement && parentElement.innerHTML != "") {

        console.log(parentElement);
        console.log(parentElement.firstElementChild);
        console.log(parentElement.firstChild);
        console.log(parentElement.childNodes);
        console.log(parentElement.childNodes[0]);
        console.log(parentElement.childNodes[1]);

    } else {

        setTimeout(injectCode, 250);
    }   
}

如何選擇parentElement的第一個子元素/節點?

在此處輸入圖片說明

更新:
parentElement.children[0]也具有與parentElement.childNodes[0]相同的錯誤。

這些都將為您提供第一個子節點:

console.log(parentElement.firstChild); // or
console.log(parentElement.childNodes[0]);

如果需要第一個子節點是元素節點,請使用:

console.log(parentElement.children[0]);

編輯

啊,我現在明白了你的問題; parentElement是一個數組。

如果您知道getElementsByClassName只會返回一個結果(看起來確實如此),則應使用[0]來對元素進行反序列化(是的,我把這個詞弄清楚了):

var parentElement = document.getElementsByClassName("uniqueClassName")[0];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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