javascript 传参数问题

发布于 2022-08-27 11:59:55 字数 744 浏览 10 评论 0

在写代码的时候,有时候需要将html拼成串,追加到相应的元素上,这个拼的html,有时候还要带上javascript的事件。这里面一个传参数的问题,有点想不明白。下面我详细记录一下:

//这是jqgrid里面,特殊表格的自定义显示
function customFmatter(cellvalue, options, rowObject){  

    // rowObject - 当前cell所在row的值,如{ id=1, name="name1", price=123.1, ...}
    console.log(rowObject); 
  return "<button  onclick=\"deleteData(\""+rowObject+"\"s)\">删除</buttion> "
}

function deleteData(obj){
console.log(obj); //这里的obj就不是上一个方法里面的obj了。
}

这种情况下,传递Object不可以这样拼吗? 我试着改成JSON.stringify(rowObject)以串的形式传给deleteData方法,但是因为这个对象 也是有双引号,所以这样弄,就会报

Uncaught SyntaxError: Unexpected token ILLEGAL

总结一下,应该是两个问题: 1.在dom事件中,传递object会有什么特殊的规则吗? 2.对于传递的数据中,有可能出现的特殊字符,如果避免?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

栖竹 2022-09-03 11:59:55

你把 rowObject 直接与字符串相加,rowObject 被调用 toString() 方法转换成字符串 [object Object]。于是……你懂了?

你可以用 JSON.stringify 把一个类字典对象转换成字符串来传递,然后在函数内部再使用 JSON.parse 来解析。

全部不再 2022-09-03 11:59:55

这样等于传了一个字符串进去

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文