Newyorkcity
V2EX  ›  问与答

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

  •  
  •   Newyorkcity · Sep 25, 2017 · 1451 views
    This topic created in 3179 days ago, the information mentioned may be changed or developed.

    先根据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 replies    2017-09-26 00:03:55 +08:00
    SoloCompany
        1
    SoloCompany  
       Sep 26, 2017   ❤️ 1
    1. 属性关系不是父子关系
    2. RTFM - MDN 同样也有告诉你 Attr 节点的 parentNode 属性永远是 NULL
    https://developer.mozilla.org/en-US/docs/Web/API/Attr
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1046 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:03 · PVG 03:03 · LAX 12:03 · JFK 15:03
    ♥ Do have faith in what you're doing.