search

Home  >  Q&A  >  body text

前端 - javascript 传参数问题

在写代码的时候,有时候需要将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.对于传递的数据中,有可能出现的特殊字符,如果避免?

PHP中文网PHP中文网2816 days ago463

reply all(2)I'll reply

  • 黄舟

    黄舟2017-04-10 12:50:40

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

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

    reply
    0
  • 阿神

    阿神2017-04-10 12:50:40

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

    reply
    0
  • Cancelreply