0

好的,所以我有一个变量、一个函数和一个无序列表。我运行这段代码:

var someid = '501bc5210642741838000000';
var liststring = '<li class="ui-state-default" id="'+someid+'">'+
                 '<button type="button" class="del" onclick="newfunction('+someid+');" >X</button>Slide</li>';
$('ul').append(liststring);

对于 someid 的不同值,此代码重复多次。

函数 newfunction() 如下所示:

var newfunction = function(someid){
$('#'+someid).remove();
//some other stuff; the above is the important bit
}

这应该使得当单击按钮时,它将 someid 传递给 newfunction(),该函数具有 jQuery 代码,可从 DOM 中删除包含该按钮的列表元素。

搞砸的一点是我将列表元素等包含在一个字符串中以将其附加到列表 HTML 中。我验证了代码是否可以正常工作——我手动编写了两个列表元素,它运行得很好。我可能缺少一些语法 - 我缺少什么?

4

3 回答 3

1

尝试在变量周围添加引号,使其打印为字符串而不是变量名。

'<button type="button" class="del" onclick="newfunction(\''+someid+'\');" >X</button>Slide</li>';
于 2012-08-06T20:37:50.643 回答
1

尝试将 someid 放在引号中,例如

onclick="newfunction(\'' + someid + '\');"
于 2012-08-06T20:38:53.090 回答
0

您应该能够只使用live- 方法:

$(function() {
    $('li.ui-state-default').live('click', function() {
        $(this).remove();
    });
});

请注意,较新版本的 jQuery 已弃用此功能,它使用 now on

更多信息在这里

lg,

弗洛

于 2012-08-06T20:38:24.713 回答