Javascript 在internet explorer中为null或不是对象,但在firefox中不是
当运行javascript代码时,我在IE only中遇到以下错误:“thisList.name在第297行字符2处为null或不是对象(注释为-tableTotal[thisList.name]=0的行)”。不过,它在Firefox中运行良好。下面是我的代码:Javascript 在internet explorer中为null或不是对象,但在firefox中不是,javascript,firefox,internet-explorer-8,Javascript,Firefox,Internet Explorer 8,当运行javascript代码时,我在IE only中遇到以下错误:“thisList.name在第297行字符2处为null或不是对象(注释为-tableTotal[thisList.name]=0的行)”。不过,它在Firefox中运行良好。下面是我的代码: var groupTable = {}; var groupFS = {}; var tableTotal = {}; var grandTotal = 0; $.each(allLists, function(index) {
var groupTable = {};
var groupFS = {};
var tableTotal = {};
var grandTotal = 0;
$.each(allLists, function(index) {
thisList=allLists[index];
tableTotal[thisList.name]=0;//This line throw the error
thisDiv=$("<div id='" +thisList.name+"'/>");
fsString='<fieldset><legend>' + thisList.label;
fsString+='<span class="legendneutral">';
fsString+=' (span class="ui-button tableselect"
onclick="QtOptions.selectTable(this)">Select All </span>|'
fsString+='<span class="ui-button tabledeselect" onclick
="QtOptions.deselectTable(this)> Deselect All)</span>)'
fsString+='</span>
fsString+='<legend></fieldset>' ;
groupFS[thisList.name]=$(fsString);
groupTable[thisList.name]=$("<table id='" +thisList.name+ "_table' class
='sortable' cellpadding='0' cellspacing='0'/>");
tHead='<thead><tr style="font-size:12px;"><th style="width:6%;">Selected</th>
</tr></thead>
$(groupFS[thisList.name]).appendTo($(thisDiv));
$(tHead).appendTo($(groupTable[thisList.name]));
$(groupTable[thisList.name]).appendTo($(groupFS[thisList.name]));
$(thisDiv).appendTo($(tabdiv));
});
var-groupTable={};
var groupFS={};
var tableTotal={};
var-grandTotal=0;
$.each(所有列表、函数(索引){
thisList=所有列表[索引];
tableTotal[thisList.name]=0;//此行将抛出错误
thisDiv=$(“”);
fsString=''+thisList.label;
fsString+='';
fsString+='(span class=“ui按钮表选择”
onclick=“QtOptions.selectTable(this)”>全选|”
fsString+='虽然那一行给了你一个错误,但真正的问题不在这里——很可能是在你构建所有列表
时,这里没有定义。请制作一个小的、完整的、自包含的演示来重现你的问题。什么是所有列表
?其中的每个项目都有名称
属性吗y?此列表应该是什么类型?您是如何填充AllList的?我的第一个猜测是,由于某些特定于浏览器的原因,您在AllList中有一个或多个空值。我猜AllList
是一个数组,并且您在最后一项之后留下了一个尾随的,
。某些版本的IE会错误地将成员添加到数组中。This会导致项目被迭代,因此这个列表。name
会在未定义的上访问。name
。所有列表都是问题所在。这是一个单独js文件中的数组,我注释掉了几行。一旦我取消注释,它在IE中就可以正常工作。非常感谢大家。