小弟初学DOM,请高手指点一下

解决方案 »

  1.   

    第一个问题:
    table默认会添加一个tbody对象~即使你html没写出来,但还是默认会添加进去~~~
    而tr则是在tbody里面的~~~第二个没研究~~第三:虽然现在没试~~但我记得以前也写了一些不属于html的标记~~用一般的js方法好像也取不了这些元素~~~
      

  2.   

    第一个问题;你要知道table内有一个隐藏的tbody,也就是
    <body>
    <table>
    <tbody>
    <tr>...</tr>
    </tbody>
    </table>
    </body>
    所以会的到孩子节点是1就是tbody
    第二个问题:innerHTML是什么意思你测试结果就看到了包含标签和文本
    而nodevalue只有本文类型才有这个属性,得到的是它的值
    <html>
    <head>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function test(){
    var mya=document.getElementsByTagName("a");
    alert(mya.item(0).firstChild.firstChild.nodeValue);
    //alert(mya.item(0).firstChild.innerHTML);
    }
    //-->
    </SCRIPT>
    </head>
    <body onload="test()">
    <a>
    <b>
    aaa
    <c>cccc</c>
    <d>dddd</d>
    </b>
    </a>
    </body>
    </html>
    楼主看到aaa就是文本类型,你可以按照nodeType=2来判断,再就是空格也会认为是文本类型,一定要注意
    第三个问题:
    <html>
    <head>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function test(){
    var mya=document.getElementById("b");alert(mya.attributes.getNamedItem("class").value);}
    //-->
    </SCRIPT>
    </head>
    <body onload="test()">
    <a>
    <b class="bc" id="b">
    <c value="cc">
    this is a test!
    </c>
    </b>
    </a>
    </body>
    </html>
    内容太多建议弄本书系统看一下