日期:2014-05-16  浏览次数:20395 次

学习HTML DOM遇到的奇怪问题
1。第一个提示语句结果是:1,第二个是:TBODY
为什么得到的是上面这样的结果?
<html>
<head>
<SCRIPT   LANGUAGE= "JavaScript ">
<!--
function   test(){
var   alist=document.getElementById( "mylist ");
alert(alist.childNodes.length);
alert(alist.childNodes[0].nodeName);
}
//-->
</SCRIPT>
</head>
<body   onload= "test() ">
<table   id= "mylist ">
<tr> <td> 一个和尚有水喝。 </td> </tr>
<tr> <td> 两个和尚挑水喝。 </td> </tr>
<tr> <td> 三个和尚没水喝。 </td> </tr>
</table>
</body>
</html>

2。下面这个,为什么nodeValue没值?nodeValue和innerHTML有什么区别?
<html>
<head>
<SCRIPT   LANGUAGE= "JavaScript ">
<!--
function   test(){
var   mya=document.getElementsByTagName( "a ");
alert(mya.item(0).firstChild.nodeValue);
alert(mya.item(0).firstChild.innerHTML);
}
//-->
</SCRIPT>
</head>
<body   onload= "test() ">
<a>
<b>
<c> cccc </c>
<d> dddd </d>
</b>
</a>
</body>
</html>

3。下面这个如何才能得到 <b> 的class值,和 <c> 的value值?
<a>
<b   class= "bc ">
<c   value= "cc ">
this   is   a   test!
</c>
</b>
</a>

------解决方案--------------------
第一个问题:
table默认会添加一个tbody对象~即使你html没写出来,但还是默认会添加进去~~~
而tr则是在tbody里面的~~~

第二个没研究~~

第三:虽然现在没试~~但我记得以前也写了一些不属于html的标记~~用一般的js方法好像也取不了这些元素~~~
------解决方案--------------------
第一个问题;你要知道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>
内容太多建议弄本书系统看一下