如何从几个<ul>的列表中删除特定<ul>的特定<li>

时间:2019-03-26 05:27:21

标签: javascript jquery html

我的HTML页面中有10-15个无序列表,每个列表项旁边都有一个删除按钮。

为使每个li都可以唯一标识,我为其分配了id:其父代的id和自己的category_name。

但是,当我执行remove()时,它不起作用。 li不会从其父级中删除。

我已经有一个与每个ul相关的输入框,用于将li添加到正在工作的特定ul中。

<script>

    function remove_category(ident){
        $("#"+ident).remove;     
    }

    function add_category(ul_id, input_id){
        var ul = $("#"+ul_id);
        var added_category = $("#"+input_id).val();
         $(ul)
             .append('<li class="list-group-item" id="'+added_category+'">'+added_category+'<button type="button" id="delete-category-btn" onclick="remove_category('+ul_id+added_category+');"><i class="fa fa-times delete-fa" aria-hidden="true"></i></button></li>')
    }
</script>

remove_category()函数不执行任何操作。

2 个答案:

答案 0 :(得分:0)

尝试使用它,

function removeLi(dhis){
  dhis.parent().remove()
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
    <li >list 1 <button onclick="removeLi($(this))">remove</button></li>
    <li>list 2 <button onclick="removeLi($(this))">remove</button></li>
    <li >list 3 <button onclick="removeLi($(this))">remove</button></li>
    <li >list 4 <button onclick="removeLi($(this))">remove</button></li>
    <li >list 5 <button onclick="removeLi($(this))">remove</button></li>
</ul>

答案 1 :(得分:0)

可能是因为事件处理程序未采用动态元素。使用.on使click事件在动态元素上起作用

这里是例子。

$(document).on("click", ".added-category", function() {
  var parent = $(this).closest("li");
  parent.after("<li>" + parent.html() + "</li>");
});

$(document).on("click", ".remove-category", function() {
  var parent = $(this).closest("li");
  parent.remove();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li>
    some text
    <button class="added-category">Add</button>
    <button class="remove-category">Remove</button>
  </li>
</ul>