JS中插入的html元素绑定的函数传值问题
在JavaScript中向html中动态插入一些元素, 例如button/input等, 对插入的元素绑定一些事件去执行函数, 这个时候如果想要给函数传递对象类型的参数, 或者传的参数中可能会存在特殊字符, 例如英文的单双引号, 会使页面报错无法继续运行, 这里就介绍一种利用escape对特殊字符转码进行传值的方法. 部分代码如下:
function (value, row, index) {
var fileEvidenceObj = {
source: row.fileEvidence.source,
recorderName: row.fileEvidence.recorderName,
time: row.fileEvidence.time,
location: row.fileEvidence.location,
reviewerOne: row.fileEvidence.reviewerOne,
reviewerTwo: row.fileEvidence.reviewerTwo,
content: row.fileEvidence.content
};
// 此处注意要先把对象转成字符串再进行转码
var fileEvidence = escape(JSON.stringify(fileEvidenceObj)); // 对象转字符串,并转码,防止特殊字符的影响
var hindleBtn = '<button class="btn btn-link btn-xs" οnclick="editItem(\''+fileEvidence+'\')">编辑</button> '
return hindleBtn;
}
window.editItem = function (fileEvidence) {
var evidence = JSON.parse(unescape(fileEvidence)); // 解码,字符串转对象,传值
};