jQuery使用LI中的超链接从UL中删除LI

Jon*_*Jon 32 javascript jquery jquery-ui

我有一个无序列表:

<ul id="sortable">
  <li id="1" class="ui-state-default">First <a href='#' title='delete' class="itemDelete">x</a></li>
  <li id="2" class="ui-state-default">Second <a href='#' title='delete' class="itemDelete">x</a></li>
  <li id="3" class="ui-state-default">Third <a href='#' title='delete' class="itemDelete">x</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想删除<li><ul>.我已经处理了类itemDelete的click事件,我尝试删除但我认为它不起作用,因为我无法删除,<li>因为孩子正在调用它?

$('.itemDelete').live("click", function() {
            var id = $(this).parent().get(0).id;


            $("#" + id).remove();

        });
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法?

Bli*_*ixt 63

假设您使用的是最新版本的jQuery:

$('#sortable').on('click', '.itemDelete', function() {
    $(this).closest('li').remove();
});
Run Code Online (Sandbox Code Playgroud)

closestparent(虽然parent在这里工作也有点动态.)它li在结构中得到最接近当前元素的东西.


hel*_*dre 8

实际上,你现在拥有它的方式id将是未定义的,因为没有一个li有id.

为什么不做呢

$(this).parent().remove()
Run Code Online (Sandbox Code Playgroud)

另外,别忘了归还假.


Gre*_*reg 6

您没有标识你的<li>小号

怎么样简单

$(this).parent().remove();
Run Code Online (Sandbox Code Playgroud)