首页 > 解决方案 > 如何删除单个

  • 从一个
  • 问题描述

    左键单击后,我需要删除单个列表元素。我可以删除整个列表,但不能删除单个元素

    我在 Stack 上环顾四周,但似乎没有什么能回答我的具体问题

    (function(){
    
      $(document).ready(function() {
    
        $("#likeform").submit(function(event) {
          var input = $(this).children("input[name='thing']")
          var thing = $(input).val()
          $("#likes").append("<li>" + thing + "</li>")
          $(input).val("")
          event.preventDefault()
        });
    
        $("#likes").click(function() {
            alert("test=true")
            $("#likes").remove()
    
        });
    
      })
    })()
    
    
    
    
    
    <body>
      <h1>What do you like?</h1>
      <form id=likeform>
        <input name=thing placeholder="a thing you like" size=30>
        <input type=submit>
      </form>
    
      <ul id=likes></ul>
    
      <!-- Scripts -->
      <script src="https://code.jquery.com/jquery-3.3.1.min.js"
            integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
            crossorigin="anonymous"></script>
      <script src="scripts/index.js"></script>
    </body>
    
    </html>
    

    我不确定是否需要为每个列表元素添加特定的 ID。

    标签: jqueryhtml

    解决方案


    将点击处理程序放在 上li,而不是ul. 然后你可以参考他们点击的元素this

    使用事件委托,因此这将适用于动态添加的元素。

    $("#likes").on("click", "li", function() {
        $(this).remove();
    });
    

    推荐阅读