我有以下html元素,动态附加了onclick()函数。 我们打电话时会抛出错误。传递的名称变量将类似于" ST-123"。它抛出的错误就像" ST"没有定义 。 你能帮上忙吗?
hubName =" ST-123" ;
IdCell.append("<button type='button' class='btn-link' style='float:right; margin-right:-6px; margin-top:-11px;' onclick='unPair($(this),"+name+")'>
<img src='../images/link-minus.png'> </button>");
这里的idCell是表格单元格之一。
答案 0 :(得分:2)
你的问题是你的第二个参数不是字符串。
onclick='unPair($(this),"+name+")'
将评估为
onclick='unPair($(this),ST-123)'
由于ST-123
不是字符串,因此会尝试从123
中减去ST
。如果ST
不存在,则会抛出异常。
由于您无法轻松使用'
,因为它会终止您的onclick
属性,因此您可以尝试使用双引号。但是当你的字符串以它开头时,你需要首先通过向它添加一个反斜杠来逃避它:
onclick='unPair($(this),\""+name+"\")'
这将评估为:
onclick='unPair($(this),"ST-123")'
答案 1 :(得分:1)
您需要将值传递为字符串
onclick=\"unPair($(this),'"+name+"')\"
或者您可以使用双引号
onclick='unPair($(this),\""+name+"\")'
答案 2 :(得分:1)
使用更多jQuery
var button = $('<button />', {
type : 'button',
'class' : 'btn-link',
css : {
float : 'right',
marginRight : '-6px',
marginTop : '-11px'
},
on : {
click : function() {
unPair( $(this), name );
}
}
}),
image = $('<img />', {
src : '../images/link-minus.png'
});
IdCell.append( button.append(image) );