V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Newyorkcity
V2EX  ›  问与答

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

  •  
  •   Newyorkcity · 2017-09-25 19:43:04 +08:00 · 1144 次点击
    这是一个创建于 2652 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先根据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 里对节点的应用真是复杂,各种文档感觉也不说清楚属性的根本由来,就很难受。请各位看看我的整理认识有无错处,谢谢。
    1 条回复    2017-09-26 00:03:55 +08:00
    SoloCompany
        1
    SoloCompany  
       2017-09-26 00:03:55 +08:00   ❤️ 1
    1. 属性关系不是父子关系
    2. RTFM - MDN 同样也有告诉你 Attr 节点的 parentNode 属性永远是 NULL
    https://developer.mozilla.org/en-US/docs/Web/API/Attr
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5386 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:12 · PVG 17:12 · LAX 01:12 · JFK 04:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.