2017-02-12 10 views
-1

Только знание javascript требуется. Если кто-нибудь знает, пожалуйста, помогите мне. Я не знаю, как это сделать, но я пробовал это разными способами, но все же не смог передать значение.Вызов функции javascript из тега привязки внутри td внутри кода javascript

Просто, у меня есть цикл for, и у меня есть td внутри него. Я хочу вызвать функцию javascript из этого td-щелчка, но проблема Я не могу передать какой-либо параметр этой функции.

код здесь:

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

@NinaScholz проблема не с закрытием тега, если я его по-прежнему не работает –

+0

Контракт - это переменная ... вы передаете ее как строку. Посмотрите в сгенерированном html – charlietfl

ответ

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);

+0

'View' Я использовал как и сказал, но сгенерированный html выглядит так: –

+0

Что такое '=' и '+ =' делать в вашей строке? –

+0

в одноточечном вызове, он добавляет данные к одному и тому же tr с mutliple td по одному. и моя страница - страница бритвы, используемая в asp.net mvc, поэтому, хотя код ur работает отлично в образце, заданном u, но в моем коде он генерирует некоторый другой html. не знаю, объяснил ли я все правду или нет –

0

попробовать:
var cont = data[it].ContractCode.replace(/"/g, '\\"');
tab += '<td><a onclick="Delete_User(\''+cont+'\');">View</td>";

первой линии кодирует любые двойные кавычки
вторая строка вставляет контракт в качестве параметра и добавляет одинарные кавычки это