为<ul> </ul> </li>中的每个<li>添加一个关闭事件按钮

时间:2011-10-08 04:08:18

标签: jquery

我想为<li>中的每个<ul>添加一个x按钮。此x(关闭)按钮将从<li>中删除该<ul>个人。如何使用jQuery创建一个使this删除当前项的单个函数?

继承我的HTML示例:

<ul id="list_a">
  <li value="1">Red&nbsp;&nbsp;<span class="closeButton">X</span></li>
  <li value="2">Orange&nbsp;&nbsp;<span class="closeButton">X</span></li>
  <li value="3">Green&nbsp;&nbsp;<span class="closeButton">X</span></li>
</ul>

编辑:添加了关闭按钮<span>

3 个答案:

答案 0 :(得分:1)

// Use live to bind click event to each element with closeButton class and remove it
$('.closeButton').live('click', function(){
    $(this).parent().remove();
});

<ul id="list_a">
   <li value="1">Red&nbsp;&nbsp;<span class="closeButton">X</span></li>
   <li value="2">Orange&nbsp;&nbsp;<span class="closeButton">X</span></li>
   <li value="3">Green&nbsp;&nbsp;<span class="closeButton">X</span></li>
</ul>

jsFiddle

答案 1 :(得分:1)

Event delegation.选择列表,然后让它听取.closeButton上的点击事件。然后移除lispan的父级。

$("#list_a").delegate(".closeButton", "click", function() {
    $(this).parent().remove();
});

答案 2 :(得分:0)

我还会使用jQuery动态创建关闭按钮。

$('#list_a li').each(function(){
    $(this).append($('<span/>',{html:'X',class:'closeButton'}).click(function(){
        $(this).parent().remove();
    }));
});