Javascript IE和getElementsByClassName问题
因此,首先,我正在学习JS,在我了解所有需要的信息之前,我不会使用库 既然如此,为什么我的代码在Javascript IE和getElementsByClassName问题,javascript,ajax,internet-explorer,Javascript,Ajax,Internet Explorer,因此,首先,我正在学习JS,在我了解所有需要的信息之前,我不会使用库 既然如此,为什么我的代码在
- 汤姆
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,该链接非常棒。