我正在使用jQuery Datatables插件来显示数据。 这在Mozilla和Chrome中完美运行,但在IE中,它可以生成 以下行中的“className为null或不是对象”错误 jQuery.Datatables.js中的代码
代码: if(nTds [i] .className.indexOf(sClass +“1”)!= -1) { for(j = 0,jLen =(nTds.length / iColumns); j
我不确定问题是否属于“indexOf”或“className” 因为IE不支持indexOf
对此问题的任何帮助都表示赞赏
答案 0 :(得分:1)
对象本身存在问题......自然也会出现属性。
我用过:
if(typeof nTds[i] != 'undefined' && typeof nTds[i] !=null && typeof nTds[i] !='null')
{
// original className check code in here
}
答案 1 :(得分:0)
您获得的元素没有定义className
属性。在indexOf检查之前进行类型检查。
if(typeof nTds[i].className != 'undefined' && nTds[i].className.indexOf(sClass+"1") != -1) { ...
编辑:
请准确尝试此代码。
if(typeof nTds[i].className != 'undefined') {
if ( nTds[i].className.indexOf(sClass + "1") != -1) {
for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ ) {
nTds[(iColumns*j)+i].className = $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"1", "" ) );
}
} else if ( nTds[i].className.indexOf(sClass+"2") != -1 ) {
for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ ) {
nTds[(iColumns*j)+i].className = $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"2", "" ) );
}
}
}
答案 2 :(得分:0)
与Daniel的答案基本相同,但不需要明确检查undefined
:
if ( nTds[i].className && nTds[i].className.indexOf(sClass+"1") != -1 ) { ...