Javascript 为什么可以';我按document.getElementById(“node';s#u id”)选择子节点。子节点?

Javascript 为什么可以';我按document.getElementById(“node';s#u id”)选择子节点。子节点?,javascript,dom,parent-child,nodes,Javascript,Dom,Parent Child,Nodes,假设我有一个简单的html代码,将父元素div和子元素span设置为: 除了G-thang之外什么都没有 据说HTMLDOM中的每个元素都是一个对象。因此,我们可以选择子对象作为parent.child。例如,window.document,window.document.body,window.document.head等等,那么我的问题是为什么document.getElementById(“my_div”).span返回未定义 类似地,window.document.body也可以工作,但

假设我有一个简单的html代码,将父元素
div
和子元素
span
设置为:

除了G-thang之外什么都没有

据说HTMLDOM中的每个元素都是一个对象。因此,我们可以选择子对象作为
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
属性(
节点/元素
)由
document.getElementById
返回。由于没有与返回对象关联的
span
属性,
document.getElementById(“my_div”).span
将是
未定义的

使用,返回文档中与指定选择器组匹配的第一个元素(使用文档标记中的第一个元素对文档节点进行深度优先的预先顺序遍历,并按子节点的数量顺序遍历顺序节点)

console.log(document.querySelector('my#u div span')
除了G-thang什么都没有
使用
点符号
),您正试图访问
文档返回的
对象(
节点/元素
)的
属性。getElementById
。由于没有与返回对象关联的
span
属性,
document.getElementById(“my_div”).span
将是
未定义的

使用,返回文档中与指定选择器组匹配的第一个元素(使用文档标记中的第一个元素对文档节点进行深度优先的预先顺序遍历,并按子节点的数量顺序遍历顺序节点)

console.log(document.querySelector('my#u div span')
除了G-thang什么都没有

您可以像这样选择span

var span=document.getElementById(“my_div”).querySelector(“span”);
控制台日志(span)
除了G-thang什么都没有

您可以像这样选择span

var span=document.getElementById(“my_div”).querySelector(“span”);
控制台日志(span)
除了G-thang什么都没有

如果没有额外的JS内容,一旦有了父对象,getElementsByTagName就可以工作了element@zerohero,有很多种方法!而且
querySelector
不需要额外的东西
head
body
标记DOM中的属性或对象吗?是的,
head
body
文档
对象的属性!你能给我一个参考吗?因为w3school声称,如果没有额外的JS内容,getElementsByTagName在你有了家长之后就可以工作了element@zerohero,有很多种方法!而且
querySelector
不需要额外的东西
head
body
标记DOM中的属性或对象吗?是的,
head
body
文档
对象的属性!你能给我一个参考吗?否则我已经编辑了这个问题。我不是问如何选择孩子。我在问为什么我不能选择它作为
document.getElementById(“my_div”).span
?是的,它返回object,但里面没有span属性。这里是我编辑过的所有属性的列表。我不是问如何选择孩子。我在问为什么我不能选择它作为
document.getElementById(“my_div”).span
?是的,它返回object,但里面没有span属性。这里是所有属性的列表,可能重复:。@FreemanLambda
.span
。可能重复:。@FreemanLambda
.span