js中关于{}中对象表达式结尾多余逗号在不同的环境下产生的异常排查
用的同样的easyui和jquery版本,家里的Jdk为1.8.0,公司电脑用的jdk也是1.8.0,区别只是小版本比如201 203这样的不同,在家里电脑上跑的好好的easyui datagrid代码,复制到公司电脑上datagrid就不能正常工作了,完全不能显示。折腾了很久,终于找到了原因。原因就是js表达式中的{}中的对象结尾多出的一个","逗号导致异常。(当然这个异常只是表现在Eclipse内置浏览器调试的时候显示异常,如果在Eclipse中跑起来后,把URL放到IE或360等其它浏览器中打开是完全正常的,说明JS{}对象表达式末尾有多余的逗号大部分情况下是可以正常运行的)
比如:下面的JS代码在家里的电脑跑的灰常正常
<table id="dg"></table>
<script>
$('#dg').datagrid({
title: 'Basic DataGrid', //表格标题
width:720, //表格宽度
pagination: true, //开启分页
pageSize: 10, //分页大小
pageNumber:1, //第几页显示(默认第一页,可以省略)
pageList: [10, 20, 30], //设置每页记录条数的列表
columns: [[ //添加列
{
field: 'itemid', //绑定数据源ID
width: 80,
title: 'itemid',
},
{
field: 'productid',
width: 80,
title: 'productid',
},
{
field: 'listprice',
width: 80,
title: 'listprice',
},
{
field: 'unitcost',
width: 80,
title: 'unitcost',
},
{
field: 'attr1',
width: 250,
title: 'attr1',
},
{
field: 'status',
width: 80,
title: 'status',
},
]],
});
$('#dg').datagrid({ loadFilter: pagerFilter }).datagrid({
url: 'easyui/demo/datagrid/datagrid_data1.json' //加载数据
});
//修改分页栏显示中文样式,这个要放在loadFilter加载数据后面,否则不能显示
var p = $('#dg').datagrid('getPager');
$(p).pagination({
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '第{from}到{to}条,共{total}条',
});
</script>
但是拿到公司电脑上相同jdk,相同easyui,jquery就跑不起来了。区别只是电脑系统家里win7,公司win10
经过反复排查发现问题出在对象表达式{}最后的那个逗号,
在家里的电脑上,像下面这样写是可以的,可以看到多了三个逗号
{
field: 'status',
width: 80,
title: 'status',
},
]],
});
但在公司电脑上必须要去掉,否则完全无法初始化Datagrid
公司电脑上修改为下面这样的运行OK,当然标准也应该是这样的
<table id="dg"></table>
<script>
$('#dg').datagrid({
title: 'Basic DataGrid', //表格标题
width:720, //表格宽度
pagination: true, //开启分页
pageSize: 10, //分页大小
pageNumber:1, //第几页显示(默认第一页,可以省略)
pageList: [10, 20, 30], //设置每页记录条数的列表
columns: [[ //添加列
{
field: 'itemid', //绑定数据源ID
width: 80,
title: 'itemid'
},
{
field: 'productid',
width: 80,
title: 'productid'
},
{
field: 'listprice',
width: 80,
title: 'listprice'
},
{
field: 'unitcost',
width: 80,
title: 'unitcost'
},
{
field: 'attr1',
width: 250,
title: 'attr1'
},
{
field: 'status',
width: 80,
title: 'status'
}
]]
});
$('#dg').datagrid({ loadFilter: pagerFilter }).datagrid({
url: 'easyui/demo/datagrid/datagrid_data1.json' //加载数据
});
//修改分页栏显示中文样式,这个要放在loadFilter加载数据后面,否则不能显示
var p = $('#dg').datagrid('getPager');
$(p).pagination({
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '第{from}到{to}条,共{total}条'
});
</script>
一共去掉了9个{}或表达式结尾多余的逗号就正常了。
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751812.html