我想删除所有<li>
行,而是删除标记<a>
。
我只是尝试$(this).closest('li').remove()
但是也不尝试li.remove()
。我有这个:
$("#demo").append("<li class='list-group-item'>" + result.Num+ " - " + result.Desc+ "<a onclick='$(this).remove()' href='#'class='pull-right'> Delete</a> </li>");
答案 0 :(得分:1)
解决问题的正确方法是使用$(this).closest('li').remove()
遍历到已点击的li
的最近的父a
并将其删除。请注意,您需要转义字符串中的引号,这是我可以看到为什么您尝试的不起作用的唯一原因。
$("#demo").append('<li class="list-group-item">' + result.Num + ' - ' + result.Desc + '<a onclick="$(this).closest(\'li\').remove()" href="#" class="pull-right">Delete</a></li>');
然而,更好的方法是使用委托事件处理程序而不是过时的on*
事件属性,如下所示:
var $demo = $("#demo").append('<li class="list-group-item">' + result.Num + ' - ' + result.Desc + '<a href="#" class="pull-right">Delete</a></li>');
$demo.on('click', '.list-group-item a', function(e) {
e.preventDefault();
$(this).closest('li').remove();
});