在jQuery中调用JavaScript函数生成<a href...=""></a>

时间:2011-04-10 00:00:12

标签: javascript jquery

我对这段代码有疑问:

$(document).ready(function() {

    $('.notActiveId').change(function() {

        if ($(this).attr('value').length === 0 ) {

            $("#notActiveButton").html('');

        } else {

            $("#notActiveButton").html('<a href="javascript:void(0)" onClick="setStatus(' + $(this).attr('value') + ', activate)" class="operationUnlock" >Activate</a>');

        }

    });
});

我使用$(this).attr('value')使用名为notActiveId的选择列表中的值进行调用。但问题是如何在$(this).attr('value')函数中编写setStatus(),因为我的select的值是这种形式:RZT_83848Rer(所以它由字符,下划线和数字组成)。

如果我尝试按上述方式编写,那么我会收到JavaScript错误。

1 个答案:

答案 0 :(得分:2)

为什么不通过jQuery添加你的元素呢?

而不是使用旧式的“onclick”
$('#notActiveButton').empty().append($('<a/>', {
  href: '#', // the "javascript:" thing is basically bogus and unnecessary
  click: function () {
    setStatus(this.value, activate);
  },
  class: 'operationUnlock',
  text: 'Activate'
}));

现在,所有这些都假定您的“notActiveButton”元素是<a>标记的某种合法容器。但无论如何,这样做就可以编写简单的JavaScript,而不必担心报价的混乱等。