javascript - 为什么我无法通过 document.getElementById ("node' s_id").child 选择子节点?

标签 javascript dom parent-child nodes

假设我有一个简单的 html 代码 sonsisiting 父 div和 child span元素为:

<div id="my_div"><span> Nothin' but the G thang </span></div>

据说 html DOM 中的每个元素都是一个对象。所以我们可以选择子对象为 parent.child 。例如。 window.document , window.document.body , window.document.head等等那么我的问题是为什么 document.getElementById("my_div").span返回未定义?

同样window.document.body有效,但我不能再用 window.document.body.div 下降一级.

最佳答案

使用.(dot-notation),您正在尝试访问对象span属性(Node/Element) 由 document.getElementById 返回。由于没有与返回对象关联的 span 属性,document.getElementById("my_div").span 将为 undefined

使用document.querySelector , 返回文档中与指定组匹配的第一个元素(使用文档节点的深度优先前序遍历|按文档标记中的第一个元素,并按子节点数量的顺序迭代顺序节点)选择器

console.log(document.querySelector('#my_div span'));
<div id="my_div"><span>  Nothin' but the G thang  </span>
</div>

或者Node.chilren返回 Node 子元素的实时 HTMLCollection 的只读属性。

console.log(document.getElementById('my_div').children[0]);
<div id="my_div"><span>  Nothin' but the G thang  </span>
</div>

关于javascript - 为什么我无法通过 document.getElementById ("node' s_id").child 选择子节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837918/

相关文章:

javascript - 执行两个onsubmit函数;第二个函数仅在第一个函数为真时执行

javascript - 在模板文本中插入 jQuery 元素的有效方法

mysql - 在 MySQL 中连接父/子节点表时出现问题 - 减少结果集

jQuery - 从元素内部选择元素

javascript - 在 Camunda 进程中,如何使用 JavaScript 和 Spin 从 JSON 中检索 bool 值?

javascript - 在 jQuery Datatable 上获取空记录后如何隐藏加载图像

javascript - 如何使用javascript获取复选框项目的值

java - 为什么 getNamespaceURI() 总是返回 null?

javascript - 我如何使用 querySelector() 选择具有双类的元素

javascript - 如何用Javascript获取确切的 child 数量