在写代码的时候,有时候需要将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.对于传递的数据中,有可能出现的特殊字符,如果避免?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你把
rowObject直接与字符串相加,rowObject被调用toString()方法转换成字符串[object Object]。于是……你懂了?你可以用
JSON.stringify把一个类字典对象转换成字符串来传递,然后在函数内部再使用JSON.parse来解析。这样等于传了一个字符串进去