ie和firfox获取上一个或下一个兄弟元素

时间:2022-03-22 20:35:34

在ie中对其中的document.getElementById("ID_Size ").previousSibling 或nextSibling 得到的都是element(节点);而在firefox中得到的是text类型(“/n         ”),在这个级别上,理解完全不一样。或者说,firefox 中的tree是只node级别,而ie中是element级别?

firefox 解释:

previousSibling:The node immediately preceding the given one in the tree, or null if there is no sibling node.

nextSibling :The node immediately following the given one in the tree, or null if there is no sibling node.

ie解释:

previousSibling:Retrieves a reference to the previous child of the parent for the object. 获取对此对象的上一个兄弟对象的引用。

nextSibling :Retrieves a reference to the next child of the parent for the object.获取对此对象的下一个兄弟对象的引用。

-------------------------------------------------------------------------

解决方案一

函数

nextSibling,previousSibling

说明:获取下一个或上一个的兄弟节点

在IE下会忽略回车和换行。FF下不会忽略。

所有我们可以用递归来解决浏览器的差异。

do {

td = td.nextSibling;

} while (td.nodeType != 1)

nodeType = 3是文本节点

nodeType = 1是html节点

----------------------------------------------------------------

解决方案二

w3c  有previousSibling,nextSibling  ie下上一个元素,下一个元素,

而firefox 不是这个意思可以由它自己的方法代替previousElementSibling,nextElementSlibing