HTML中父节点和子节点

作个例子先
< table id="table" >
  
< tr id="tr" >< td ></ td ></ tr >
  
< tr >< td ></ td ></ tr >
</ table >

一个2行的表单.

 父节点

var  tr  =  document.getElementById( " tr " );
var  parent  =  tr.parentNode;

据说缺失TAG的话据说会错, 我没有试出来过, 说实话, 我写HTML很老实, 不会缺失什么Tag, 可能是以前XML写惯了, 都是well-formed, 而且层次结构清楚的很. 并且我本人对于那些利用Browser的解析能力偷懒的做法非常鄙视, 如果这样不如不要做程序员了, 这个工作本来就是需要严谨的态度的.

子节点

var  table  =  document.getElementById( " table " );
var  children  =  table.childNodes();

这个有点妖异. children是一个数组, 这个没有问题, 但是取children.length的时候问题就来了. IE下面没错, 长度为2, 2个TR么. FireFox下面就嘿嘿, 5个! 看到这里大家觉得奇怪了, 为什么5个呢? 多出来的3个是什么东西?

这个要说到W3C这个伟大的玩意. 我不知道大家有没有写过Java, Java里面有JDOM, DOM4J等第三方的XML解析工具, 不过终归还是遵循W3C的规范的, 上面的Table用这些第三方包解析的话, 没错, 2个子节点, 一点都不错. 不过你用Java自带的W3C解析, 哈哈, 5个, 的确是5个.  多出来的3个就是空白! 没错, 就是空白, 这些第三方包把空白去掉了, 或者你也可以理解为是CDATA, 只是为空而已. 比如<textarea>abc</textarea>, 这个abc也是一个节点, 不过我们通常都认为他是textarea的一个属性而已. 事实就是这样了. 不知道我这样说是不是够明白? 不明白也没有办法了, 就这样吧, 哈哈

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值