一.问题:
如何实现浏览器兼容版的element.children
element.children能够获取元素的元素子节点,但是低版本的ie不支持,如何在低版本的ie上兼容类似的功能。
二.我的思路:
⑴写一个函数getElementChild(element),传入一个父节点element.
⑵判断DOM中element对象的children属性是否存在,存在则直接返回element.children,不存在则执行兼容代码.
⑶兼容代码思路:
①创建一个数组elementArr以便返回最终 [符合要求] 的子节点集合。
②调用element对象的childNodes属性,以获取其子节点集合。
③遍历子节点集合,对每一个子节点进行判断,如果节点类型为1(即节点类型为元素节点),则添加到elementArr返回数组中。
④返回数组elementArr
三.代码如下:
JS部分:
HTML部分代码:
大风起兮云飞扬,威加海内兮归故乡。
四.问题:
1.通过element.childNodes属性应该获得了子节点的集合了nodeList了吧...按理说应该可以通过nodeList.length来获得子节点个数了,w3c上如下所述:
不过chrome控制台上却显示:
这里诚挚的请教诸君,还望不吝赐教,多谢.
如果您有更好的代码或想法思路,希望也能分享出来,小子洗耳恭听~
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
Chrome 的意思是,
nodeList是undefined。打个断点看看你那个 case 里的
element是什么。我猜element并不是个元素节点,于是也就没有childNodes。getElementsByTagName返回带有指定标签名的对象集合,返回的是数组
element.childNodes中element是一个对象
方法一:
方法二:
哈哈,题主太马虎了哈,问题出错在
应该是
所以你之前传进去的是一个
nodelist,nodelist没有childNodes哦