JS 属性节点是孩子节点吗,感觉书上、网上都描述的模棱两可

解决方案 »

  1.   

    比如<div id="d">asdasd</div> 这里的d.firstChild是哪个?是id="d"还是文本asdasd
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title> New Document </title>
      <meta name="Generator" content="EditPlus">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
     </head> <body>
    <div id="d"asdasd</div>
    <script>
    var d = document.getElementById('d');
    alert(d.firstChild.nodeType); // undefined
    alert(d.firstChild.nodeName); // #text 这里指的是文本节点或回车换行等的节点, 他们没有tagName只有nodeName
    </script> 
     </body>
    </html>
    这里后2句输出表明没有把属性节点当做子节点
      

  3.   

    <ul id="testUl">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    </ul>document.getElementById("testUl").firstChild; // <li>1</li>
    是指当前元素下的第一个子节点