js对象无法当成参数传递

新博客地址


如果我的文章帮到了你,嘻嘻,请给我点个赞。

喜欢用第三方插件的可以看看哦,说不定你也会碰到的这个问题的(至少以前在easyui中我遇到类似的,但是它有其他的方法可以实现,就避免了这个问题)。

如标题所言,今天我碰到了这个问题一头雾水,明明记得对象是可以传参的啊。我使用了一款基于bootstrap的表格插件DataTables,想把行信息直接传给操作函数,方便编辑(此行信息是一个对象,按道理可以的啊),但是写出来后怎么也不执行,于是我用谷歌调试,过程如下。


js对象无法当成参数传递_第1张图片


在表格加载的时候执行上面的代码,把行信息传递给了editInfo函数,出来界面如下:


js对象无法当成参数传递_第2张图片


当点击编辑的时候,谷歌就报了这个错误:




我在网上百度过,大多是由于缺少分号,或双引号不正确造成的,但找了一遍并没有发现问题,又调试了一次发现editInfo函数根本没有执行,这我就找到了问题的源头(传参未能传成功)。于是我查看了网页加载后的样子。


<js对象无法当成参数传递_第3张图片


上网百度了很多对象传参的问题,但都无解,只好请教我的好朋友外加大神小猪帮忙,他告诉我可以传字符串试试。于是就有了下面的改动:


js对象无法当成参数传递_第4张图片


但依旧不能执行编辑事件,发现被浏览器解析过后变成如下的样子:




双引号必须成对出现,这样当然不会执行事件了,最开始我想把full对象用escape编码,这样传递过去就是一个字符串,然后接受的时候反编码,不过小猪说大可不必这样麻烦,最终至修改了这个地方:


js对象无法当成参数传递_第5张图片


如此以来点编辑的时候就执行了。


js对象无法当成参数传递_第6张图片

你可能感兴趣的:(Javascript)