我创建了一个每行都作为超链接的动态表,我试图调用一个将行的文本作为字符串参数传递的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);和 它打印的字符串,但不知道为什么它不是调用函数。
当你逝去的字符串用引号括,' “的javascript:showMessagePopup(\ '' + keyStr + '\')”' – Satpal
不,我不是过客串用引号括。 –
尝试''javascript:showMessagePopup(\''+ keyStr +'\')“' – Satpal