将参数传递给onclick函数dymamically

时间:2016-10-12 13:40:24

标签: javascript jquery html css twitter-bootstrap

我有以下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是表格单元格之一。

3 个答案:

答案 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) );
相关问题