Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE和getElementsByClassName问题_Javascript_Ajax_Internet Explorer - Fatal编程技术网

Javascript IE和getElementsByClassName问题

Javascript IE和getElementsByClassName问题,javascript,ajax,internet-explorer,Javascript,Ajax,Internet Explorer,因此,首先,我正在学习JS,在我了解所有需要的信息之前,我不会使用库 既然如此,为什么我的代码在

因此,首先,我正在学习JS,在我了解所有需要的信息之前,我不会使用库

既然如此,为什么我的代码在 它不会在我的IE6操作系统X上产生错误(通过Wine)。 Ajax请求很好,但是应该有一个id=“one”和class=“scroller”的初始div,但是没有。 我对这件事感到很沮丧

谢谢

  • 汤姆

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

学会这一切都很好;但说到处理实现兼容性,最好让您自己来处理,IMHO。有一些事情我并不关心:当我们在javascript中使用getElementsByClassName时,IE8给出了错误——“对象不支持属性或方法”。试试这个

if (document.getElementsByClassName) {
    var obj = document.getElementsByClassName('classA');
}

我使用jQuery解决了我的问题,用ie7支持那些落后的客户端

旧版:

var editrow = grid.get_element().getElementsByClassName("rgEditRow")[0];
var editrow = $(".rgEditRow", grid.get_element())[0];
新建:

var editrow = grid.get_element().getElementsByClassName("rgEditRow")[0];
var editrow = $(".rgEditRow", grid.get_element())[0];

…或者你可以用它作为更好的解决方案

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;
    }
}
if(document.getElementsByClassName!的类型='function'){
document.getElementsByClassName=函数(){
var elms=document.getElementsByTagName('*');
var ei=新数组();

对于(i=0;我可以发布代码吗?不确定在哪里可以找到它:Dturns.setAttribute(“class”,“scroller”)对某些IE不好,因此我还需要添加到.setAttribute(“className”,“scroller”)。此外,我还需要添加所有.appendChild()在一行中,IE并没有将它从一个保持到下一个。但IE 8并没有像IE 6和7那样遵守这些。请参阅以了解有关类名更改的描述。感谢Eric Law,该链接非常棒。