2017-06-07 86 views
0

我创建了一个每行都作为超链接的动态表,我试图调用一个将行的文本作为字符串参数传递的js函数。 但它显示(在控制台中):{行的文本}未定义。无法通过表中每行超链接调用javascript函数

当我没有发送任何参数时,调用该函数是正确的,但是当参数通过时它显示错误。我怀疑它需要接受对象作为参数的函数,所以我用下划线(_)替换了每个点(。),但它仍然不起作用。

以下是我的代码:

function showMessagePopup(data) { 
$('#tbody').html(""); 
     for (var key in data) { 
      keys.push(key); 
      var keyStr=""+key; 
      keyStr= keyStr.replace(/\./g, '__'); 
      // keyStr=keyStr.split('.').join(""); 
      // console.log("type of keyStr: "+keyStr+" "+typeof keyStr); 
      var eachrow = '<tr>' 
       + '<td><a href="javascript:showMessagePopup('+keyStr+')">' + key + '</a></td>' 
       + '<td>' + data[key] + '</td>' 
       + '</tr>'; 
      $('#tbody').append(eachrow); 
     } 
} 

function showMessagePopup(str) { 

     console.log("in showMessagePopup"); 
     // some operation 
} 

我尝试以下: keyStr = keyStr.replace(/./克, '__'); keyStr = keyStr.split('。')。join(“”);

关于打印类型的keyStr: console.log(“type of”+ typeof keyStr);和 它打印的字符串,但不知道为什么它不是调用函数。

+0

当你逝去的字符串用引号括,' “的javascript:showMessagePopup(\ '' + keyStr + '\')”' – Satpal

+0

不,我不是过客串用引号括。 –

+0

尝试''javascript:showMessagePopup(\''+ keyStr +'\')“' – Satpal

回答

0

尝试点击数:

<a href="#" onlick="showMessagePopup('+keyStr+')">' + key + '</a> 
+0

屏幕上没有任何反应,只是url已附加# –

+0

尝试不使用JavaScript标记。 – Repo

+0

你知道你有两个函数叫做showMessagePopup? – Repo