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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?