问题描述
①JavaScript在获取元素时,有一个方法getElementsByClassName(),它可以根据class的值获取一组元素,这个方法哪都好,就是ie8及以下浏览器不支持。
②firstElementChild可以获取当前元素的第一个子元素,也是一个方便的方法,但是ie8还是不支持,所以如果需要兼容ie8的话不要使用。
①解决办法
当我们只想获取一个元素时,可以用如下代码代替
document.querySelector("");
一组元素的话,可以用如下代码代替
document.querySelectorAll("");
用法是""里写好 .class值 或者 #id值
②解决办法
举个例子,childNodes属性会获取包括文本节点在内的所有节点,根据DOM标签标签间空白也会当成文本节点,但是注意:在IE8及以下的浏览器中,不会将空白文本当成子节点。
同理,想要在ie8及以下浏览器中获取当前元素的第一个子元素,直接用firstChild属性不就好啦。
这样的问题还有很多,比如nextSibling和nextElementSibling、previousSibling和previouElementsSibling、lastChild和lastElementChild,我们就以firstChild和firstElementChild举例
if(obj.firstElementChild){
。。。。。
}else if(obj.firstChild){
。。。。。
}
(obj为操作对象, 。为省略的语句)