IE与FF对 DOM节点类型的部分不同

本文详细介绍了万维网联盟(W3C)定义的HTML DOM标准中的各种节点类型,并通过实例对比了IE与Firefox浏览器对这些节点的不同处理方式,提供了获取特定类型节点的实用JavaScript函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

万维网联盟(W3C)定义HTML DOM 标准节点有以下几种 ()

类型 说明  
ELEMENT_NODE  1 元素节点 *
ATTRIBUTE_NODE     2 属性节点 *
TEXT_NODE   3 文本节点 *
CDATA_SECTION_NODE 4 CDATA 区段  
ENTITY_REFERENCE_NODE 5 实体引用  
ENTITY_NODE 6 实体  
PROCESSING_INSTRUCTION_NODE 7 处理指令  
COMMENT_NODE 8 注释节点 *
DOCUMENT_NODE 9 文档节点 *

注: * 表示常用

IE与FF 对 以上节点的 "理解" 有差异,如比我们写js :  对象.nextSibling   ,  来取得对象的下一个兄弟节点,
在IE中,只会取ELEMENT_NODE (元素节点), 忽略其它类型节点.     FF会取得上面各种类型节点.

如:
<table>
  <tr  id="nst"><td></td></tr>(这里有换行,就是一个文本节点)
  <tr><td></td></tr>
</table>
--------------------------------------
<js>
var o=$('nst');
var next=o.nextSibling;
</js>
---------------------------------------
结果:
IE中:next 是元素节点 (第二个<tr>)
FF中:next 是文本节点 (那个换行)

解决办法:   通过判断 nodeType == 1  来解决问题

// 获得下一个元素对象(nodeType=1)


function $NE(e)
{
	e = e.nextSibling;
	while

 (e && e.nodeType != 1){e = e.nextSibling;}
	return

 e;
}
// 获得第一个元素对象(nodeType=1)


function $FE(e)
{
	e = e.firstChild;
	while

 (e && e.nodeType != 1){e = e.nextSibling;}
	return

 e;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值