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