js 各种兼容性整理

本文详细介绍了DOM操作中的关键方法,如通过childNodes与children属性获取子节点的区别,在不同浏览器下的表现;firstElementChild等方法的使用及在各浏览器版本中的兼容性问题。

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

DOM 部分 :所有实例都基准下面的无序列表


<ul id="ul">
   <li></li>
   <li></li>
   <li></li>
   <li></li>
</ul>

// childNodes 获取某个节点的子节点

var oUl = document.getElementById('ul');
var oLis = oUl.childNodes;
alert(oLis.length);

// IE,谷歌,火狐 = 9
// IE 6 - 8 = 5

var oLis = oUl.children;
alert(oLis.length);

// 均为 5

//在高级浏览器中 children 不会计算文本节点


//firstElementChild

var oUl = document.getElementById('ul');

var child = oUl.firstChild;

/*
IE9,火狐,谷歌结果:文本节点

IE6 - 8 结果:LI 节点

在高级浏览器中可以使用下列方法解决
*/

child = oUl.firstElementChild;

// 返回的是第一个元素节点。

/*
对应的有

获取最后一个元素节点
lastElementChild;
获取下一个兄弟元素节点
nextElementSibling;
获取上一个兄弟元素节点
previousSibling;
*/




======================================  分割线 ======================================

<div id="div1">
    <div id="div2"></div>
</div>

// offsetParent 在IE9,火狐,谷歌中的结果

var oDiv = document.getElementById('div2');

alert(oDiv.offsetParent);

/*
div1 没有使用定位时在 IE9,谷歌,火狐中结果为:BODY

div1 使用定位时在 IE9,谷歌,火狐中结果为:div1

而在低版本中 一律返回 div1

offsetParent 在高级浏览器中返回的是已定位基准的父元素,如果 div1 没有使用定位 那么对 div2 进行定位时基准的则是 body 所以返回 bod。
*/




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值