Javascript 获取直接第一个子元素

Javascript 获取直接第一个子元素,javascript,dom,Javascript,Dom,我正在编写一个Chrome内容脚本扩展,我需要能够针对一个特定的元素,不幸的是,该元素除了父元素之外没有唯一的标识符 我需要针对parentElement的直接第一个子元素console.log(parentElement)完美地报告了这两个子元素/节点,但无论我做什么,后续的控制台日志(针对子节点的日志)总是返回一个未定义的值 这是我目前的代码 (我已排除实际姓名,以避免混淆和额外的、不必要的解释) 如何选择父元素的第一个子元素/节点 更新: parentElement.children[0

我正在编写一个Chrome内容脚本扩展,我需要能够针对一个特定的元素,不幸的是,该元素除了父元素之外没有唯一的标识符

我需要针对
parentElement
的直接第一个子元素
console.log(parentElement)
完美地报告了这两个子元素/节点,但无论我做什么,后续的控制台日志(针对子节点的日志)总是返回一个
未定义的值

这是我目前的代码
(我已排除实际姓名,以避免混淆和额外的、不必要的解释)

如何选择父元素的第一个子元素/节点

更新:

parentElement.children[0]
也有与
parentElement.childNodes[0]
相同的错误。这两个节点都将为您提供第一个子节点:

console.log(parentElement.firstChild);//或
log(parentElement.childNodes[0]);
如果需要作为元素节点的第一个子节点,请使用:

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

啊,我现在明白你的问题了
parentElement
是一个数组

如果您知道它只会返回一个结果,那么您应该使用
[0]
对dearray(是的,我编造了这个词)元素:

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

您想要第一个子节点还是第一个子元素(节点)?不要让父div和子元素之间有空格,但它在一行childnodes[0]中返回
未定义的
对吗?请参阅下面的示例,我的答案是:所有内容都返回未定义(如图中所示),当您使用
[0]
时,它会触发整个脚本。我也尝试了
.children[0]
,但也没有成功/@BenHooper更新了我的答案,因为您添加了屏幕截图,我注意到了实际问题。还要注意,要获取第一个子元素节点,有一个只读属性
firstElementChild
ParentNode.firstElementChild
childNodes[0]每次都不返回任何内容。它是childNodes[1]又名base1No,
childNodes[1]
始终是第二个子节点。请注意,如果DOM是用包含空格(换行符、制表符、空格等)的HTML构建的,则
childNodes[0]
是包含该空格的文本节点,
childNodes[1]
是元素节点(但它仍然是第二个子节点)。
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);
    }   
}