Js中获取元素通常有三种方式通过ID(getElementById),标签(getElementsByTagName)以及CLASS名(getElementsByClassName)。前两种方式最为常用,在Chrome,FireFox以及低版本IE8下都好使(win10自带的ie只支持模拟到IE8,再古老的版本直接忽略好了)。可是CLASS名获取元素时,在IE8下出现这样的问题:
对象不支持“getElementsByClassName”属性或方法
因此在ie8下使用CLASS名获取元素时,需要我们自行解决兼容问题。
eg:在下面这个简单的无序列表,有序列表嵌套li的简单HTML页面中,让ul标签下的class为red的li标签背景变红
1 | <body> |
解决方案如下:
1 | //oParent:获取元素的父级对象;sClass:要获取的CLASS名(字符串) |
github:github.com/laclys/HTML-CSS-JS_practice/blob/master/JS/classname获取 封装(对应ie8–).html