从jd代码中的td内的锚标签调用javascript函数

时间:2017-02-12 13:42:08

标签: javascript jquery asp.net-mvc razor

只需要基本的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>".

此行也不会将任何值传递给函数。 请有人帮助我。

2 个答案:

答案 0 :(得分:0)

您需要转义函数参数的引用。

tab += '<td><a href="javascript:Delete_User(\'' + data[it].ContractCode + '\');">View</a></td>';
//                                          ^^                             ^^

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

尝试:
var cont = data[it].ContractCode.replace(/"/g, '\\"');
tab += '<td><a onclick="Delete_User(\''+cont+'\');">View</td>";

第一行编码任何双引号
第二行将合约作为参数插入并在其周围添加单引号