摘自 http://blog.csdn.net/zxygww/article/details/46635403
环境:
EasyUI 1.4.2.
现象:
在使用JQuery EasyUI 的datagrid控件时,使用动态指定columns的方式,相关代码如下:
$("#topApList").datagrid({columns:[[
{field:‘aaa‘,title: ‘aaa‘,align: ‘center‘,width: 130},
{field:‘bbb‘,title: ‘bbb‘,align: ‘center‘,width: 100},
]]
});
在IE8浏览器中打开该页面时出现错误:‘Rowspan’ 为空或不是对象,‘Colspan’ 为空或不是对象。
在Firefox, Safari, Chrome浏览器中没有报错,页面正常显示。
分析代码:
jquery.easyui.mini.js代码,高亮部分为出现空指针异常的地方:
for (var j = 0; j < cols.length; j++) {
var col = cols[j];
var attr = "";
if (col.rowspan) {
attr += "rowspan=\"" + col.rowspan + "\" ";
}
if (col.colspan) {
attr += "colspan=\"" + col.colspan + "\" ";
}
原因:
在最后一个field后面,出现一个逗号,导致浏览器计算出来的cols.length为3(其实际值为2),当访问cols[2]时出现空指针异常。
解决方案:
将最后一个field后的逗号去掉即可。
效果:
IE中未出现上述错误。