只需要基本的javascript知识。如果有人知道请帮助我。 我不知道怎么做,但我已经尝试过很多方面,但仍然无法传递价值。
简单地说,我有一个for循环,我有一个td。我想从这个td点击调用javascript函数,但问题是我无法将任何参数传递给此函数。
代码在这里:
function GetContractList(abc) {
var data = abc
for (var it in data) {
tab += "<tr>";
tab += "<td>" + data[it].ContractCode + "</td>";
if (data[it].ContractCode != "") {
var Contract = data[it].ContractCode;
tab += "<td><a onclick='Delete_User(Contract);'>View</td>";
// tab += "<td><a data=" + data[it].ContractCode + " href='javascript:Delete_User(this.data);'>View</td>";
}
else {
tab += "<td></td>";
}
正如你所看到的,我试图将参数传递给Delete_User函数,但语法已经破坏了。
tab += "<td><a onclick='Delete_User(Contract);'>View</td>";
此行给出错误 - 未定义合同。
"<td><a data=" + data[it].ContractCode + " href='javascript:Delete_User(this.data);'>View</td>".
此行也不会将任何值传递给函数。 请有人帮助我。
答案 0 :(得分:0)
您需要转义函数参数的引用。
tab += '<td><a href="javascript:Delete_User(\'' + data[it].ContractCode + '\');">View</a></td>';
// ^^ ^^
function Delete_User(id) {
console.log('Delete_User', id);
}
var cc = '4711abc',
tab = '<a href="javascript:Delete_User(\'' + cc + '\');">View</a>';
document.write(tab);
&#13;
答案 1 :(得分:0)
尝试:
var cont = data[it].ContractCode.replace(/"/g, '\\"');
tab += '<td><a onclick="Delete_User(\''+cont+'\');">View</td>";
第一行编码任何双引号
第二行将合约作为参数插入并在其周围添加单引号