单引号+双引号:传参的转义问题

今天遇到一个奇怪的bug,在一个table中有一列按钮,是根据js代码返回的
formatter: function (cellvalue, options, rowdata) {
	                    return '<button class="btn green orderDetail" onClick="showDetail('+options.rowId+')">详情</button> <button class="btn green redoOrder">重试</button>';
	                }

我向onClick事件中的函数里面传入了一个参数,在页面上,这些“详情”按钮有些可用,有些不可用。

最终找到的原因是:options.rowId并不是一个真正的字符串,需要转义,
在向函数传参时,如果是字符串,需要这样传入参数showDetail("options.rowId"),
而不是这样传入参数showDetail(options.rowId)

所以需要将代码改为
formatter: function (cellvalue, options, rowdata) {
	                    return '<button class="btn green orderDetail" onClick="showDetail(\''+options.rowId+'\')">详情</button> <button class="btn green redoOrder">重试</button>';
	                }


搞定!

猜你喜欢

转载自wsdtq123.iteye.com/blog/2267292
今日推荐