nextSibling的兼容问题「建议收藏」

nextSibling的兼容问题「建议收藏」这个有两个兼容性,innerText不是所有浏览器都兼容的,要用innerHTML 然后就是,对于节点关系,ie有事会将期间的空格当成一个文本节点,但火狐就不会,因此你的nextSibling很可能在ie下取到的是一个文本节点,换在火狐下就是另外一个。本文转自:http://ailantian.bokee.com/6418694.html原文如下:网

大家好,又见面了,我是你们的朋友全栈君。这个有两个兼容性,innerText 不是所有浏览器都兼容的,要用innerHTML  然后就是,对于节点关系,ie有事会将期间的空格当成一个文本节点,但火狐就不会,因此你的nextSibling很可能在ie下取到的是一个文本节点,换在火狐下就是另外一个。

本文转自:http://ailantian.bokee.com/6418694.html

原文如下:

网上firefox和ie的javascript兼容性也讲的比较多了

可以在百度上搜索”firefox javascript 兼容性”

比较简单的东西百度上能找到中文的就用baidu好了.

主要一般都是document.all这样的应用,一般改为getElementById

还有就是一个页面有多个表单的时候需要注意一些问题.

下面还有一些需要补充的

就是firstChild,nextsbiling这两个.

下面给出函数吧.还是代码比较说明问题

代码都是网上来的.

不过要注意的是,getNext和getFirstChild是不一样的

next是下一个,同级别的下一个,不会取到自己这个节点的子节点.

可能是因为对dom的理解不一样ie和firefox对firstChild,nextSbiling的处理不太一样.

所以要取到下一个结点,只能用type来判断了.

function getNextSibling(startBrother){

  endBrother=startBrother.nextSibling;

  while(endBrother.nodeType!=1){

    endBrother = endBrother.nextSibling;

  }

  return endBrother;

}

function getNextSibling1(obj){

if(obj.nextSibling.nodeType==3) {

sibling=obj.nextSibling.nextSibling; // Moz. Opera

}

else {

sibling=obj.nextSibling; // IE

}

return sibling;

}

function getFirstChild(obj){

for (i=0; i<obj.childNodes.length; i++){

if (obj.childNodes[i].nodeType==1)

    return obj.childNodes[i];

else 

    continue;

}

需要使用的时候先getElementByid获取到首结点,然后就可以取到后面的结点了.

另外就是ie不区分变量大小写,收到html首先就格式化了,所以要注意id可能会相同.

会导致一些问题.

另外就是ie会把NULL字符转换成space空格,firefox是不会处理的,但是

如果javascript里面处理NULL会有一些问题.opera基本能够兼容IE的一些

函数,比如documnet.all等等.基本都能用吧,不过空字符还是不行的.是变量中的空字符

会带来问题.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158540.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号