突然想起来自己曾经看的一本书:《Javascript_Dom编程艺术》
该书在前边的章节就提出了一些操作Dom 的方法
类似:
document.getElementById:
.getElementsByTagName
.getElementsByClassName
其中有一段,说了有些浏览器不支持.getElementsByClassName 然后有些聪明的程序员就自己封装类。当时没看懂。。可能是我太菜的缘故。今天重新看到这里,然后突然就明白了。
接下来,我将自己封装一个可以获得ClassName。
首先需要明白一个事情,即.getElementsByClassName它在大部分浏览器表现良好。但是一旦到了“著名”的IE 678.它的问题就出现了。
放一个demo,方便自己测试用。
只有两个含有class:
一般浏览器显示正常:
但是当我换成IE 7的时候 就开始出现问题 它会显示不支持此方法 这时候便需要我们自己封装一个。
那么接下来,我们就自己动手封装一个。如何才能获得类名呢?
它的原理很简单,先将所有的盒子进行遍历,并且通过每一个盒子的className来判断。如果相等就留下。
具体怎么做呢?看下图:
一般浏览器测试结果:
IE7 测试结果:
最终可以得到class:
明天给它进行改变。当盒子不止一个class,以及它的父盒子有id怎么办???
时间不晚了,马上快两点了,那今天就到这里吧。晚安!