Javascript 以复选框为目标并使用Jquery将其删除

Javascript 以复选框为目标并使用Jquery将其删除,javascript,jquery,html,Javascript,Jquery,Html,我试着自学JQuery和Javascript。我已经创建了一个购物清单webapp,它使用JQuery将带有复选框输入的li项添加到html中 下面是代码: if(item.length < 1) { alert("Tell us what you need") } else { $("#list").append( "<li><input type='checkbox' value='None' id='checkbox' nam

我试着自学JQuery和Javascript。我已经创建了一个购物清单webapp,它使用JQuery将带有复选框输入的li项添加到html中

下面是代码:

if(item.length < 1) {
        alert("Tell us what you need")
    } else {
        $("#list").append( "<li><input type='checkbox' value='None' id='checkbox' name='check' />" + 
            "<label for='checkbox'>" + item + "</label></li>");
        $("#input").val("");
        console.log("clear")
    };
if(item.length<1){
提醒(“告诉我们您需要什么”)
}否则{
$(“#列表”)。追加(
  • ”+ “+项目+”
  • ”; $(“#输入”).val(“”); 控制台日志(“清除”) };
    我想删除用户单击#清除按钮时选中的所有li项。我对此进行了研究,但一直无法找到一个只删除选中项的解决方案

    我非常感谢你的帮助

    谢谢

    用这个

    $(':checked').remove()
    

    这将删除所有选中的复选框。

    我认为您需要的是。 要删除,可以执行以下操作:

    $("#checkbox:checked").parent("li").remove();
    
    $(".checkbox:checked").parent("li").remove();
    
    编辑:正如有人说的,您不应该有多个元素具有相同的
    id
    。将其更改为类并使用类似以下内容:

    $("#checkbox:checked").parent("li").remove();
    
    $(".checkbox:checked").parent("li").remove();
    

    相反。如果所有复选框都是
    li
    的直接子项,则
    “li”
    在技术上是不必要的,并且可能效率较低,但根据您的页面,可能不太可能破坏内容。

    如果我理解您的任务,您需要删除列表中的每个元素,如果更改后未选中其输入子项

    $("#list").on('change', 'input[type=checkbox]', function() {
        if($(this).is(':checked')) {
            $(this).parent().remove();
        }
    });
    
    试试这个

    $("[name=check]:checked").remove();
    

    id
    应该是100%唯一的。使用class@RUJordan你是说#列表id?关键字
    all
    。您可能希望更具体一点。此代码用于在选中该框时删除li项,但是,我希望在单击按钮(#清除)时删除选中的项。谢谢!我想在单击按钮时清除它们,因此完整答案如下:$(“#清除”).click(function(){$(“#checkbox:checked”).parent(“li”).remove();};只是别忘了关于使用ID的说法。它们旨在与页面上的单个唯一元素一起使用,而您大概可以有任意数量的复选框。因此,您的代码
  • 不符合标准,可能应该是
  • ,在这种情况下,您还需要在完整解决方案中将
    #checkbox
    更改为
    。checkbox
    。我已经更改了它。谢谢@Inkling!