JS:关于“节点”和“元素节点”还有“Node.childNotes”,"Node.firstChild",我这些理解对吗?谢谢

2017-09-25 19:43:04 +08:00
 Newyorkcity

先根据MDN 关于 nodeType 的说明,我推测属性节点与那些一起归入“已弃用的节点类型常量”中的节点类型,都不再在 DOM tree 中,并且也不会被“ Node.childNotes ”收入。emmmm 也就是说“ Node.childNotes"是和 DOM tree 完美契合的,DOM 模型下有的它都有,它没有的也不在 DOM tree 中。

这里说我推测是因为我找不到准确或官方的资料明确这一信息,我自己用

<div id="div-01">Here is div-01</div>

这一元素进行测试,它的 childNotes 并未出现属性节点,所以我认为我的推测可能是正确的。希望能提供更准确资料的大佬指正。
然后 firstChild 以及 nextSibling 着一些属性,其根本上都是在 node.ChildNotes 的简化利用罢了:
node.firstChild 就是 node.childNotes[0]; node.nextSibling 就是 node.childNotes[current_node_index+1];


JS 里对节点的应用真是复杂,各种文档感觉也不说清楚属性的根本由来,就很难受。请各位看看我的整理认识有无错处,谢谢。
1088 次点击
所在节点    问与答
1 条回复
SoloCompany
2017-09-26 00:03:55 +08:00
1. 属性关系不是父子关系
2. RTFM - MDN 同样也有告诉你 Attr 节点的 parentNode 属性永远是 NULL
https://developer.mozilla.org/en-US/docs/Web/API/Attr

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/393531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX