Javascript IE和getElementsByClassName问题

Tom*_*Tom 5 javascript ajax internet-explorer

首先,我正在学习JS,在我知道所有需要之前不会使用库.

http://www.tombarrasso.com/search/

有了这个说,为什么我的代码不能在<IE 7,Firefox <3等中工作?Safari 4非常完美,Firefox 3.5非常棒等等.我正在使用Robert Nyman的函数getElementsByClassName.

它在OS X上的IE 6中没有产生任何错误(通过Wine).Ajax请求很好,但是应该有一个id ="one"和class ="scroller"的初始div,但是没有.我对此感到非常沮丧.

谢谢,

  • 汤姆

小智 8

..或者您可以使用它作为更好的解决方案......

if (typeof document.getElementsByClassName!='function') {
    document.getElementsByClassName = function() {
        var elms = document.getElementsByTagName('*');
        var ei = new Array();
        for (i=0;i<elms.length;i++) {
            if (elms[i].getAttribute('class')) {
                ecl = elms[i].getAttribute('class').split(' ');
                for (j=0;j<ecl.length;j++) {
                    if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) {
                        ei.push(elms[i]);
                    }
                }
            } else if (elms[i].className) {
                ecl = elms[i].className.split(' ');
                for (j=0;j<ecl.length;j++) {
                    if (ecl[j].toLowerCase() == arguments[0].toLowerCase()) {
                        ei.push(elms[i]);
                    }
                }
            }
        }
        return ei;
    }
}
Run Code Online (Sandbox Code Playgroud)


Noo*_*ilk 3

就我个人而言,我只会使用 jQuery,因为它已经存在您遇到的浏览器兼容性问题。

学会这一切就很好了;但是,当涉及到处理实现兼容性时,最好让别人为您处理,恕我直言。只是有些事情我不关心:P