在 jquery 中按 id 取消选中复选框

Uncheck checkbox by id in jquery

代码:

$(function() {

$("input[type=checkbox]").on( "click", function() {
deptsSelected = '<div id = "selected_'+this.id+'">  '+ $("label[for='" + this.id + "']").text() + '<span id="delete">X</span></div>';
        $("#tabs").append(deptsSelected); 

});



    $(document).on("click", "#delete", function(e) { 
            id = $(this).parent().attr('id')
            e.preventDefault(); 
            $(this).parent().remove();  
            var checkid = $("#"+id.slice(9));
            checkid.prop("checked", false);
  });

上面的代码应该在用户点击特定 Div 时取消选中特定的复选框。 Div 是由 JQuery 动态生成的,所以我在这里所做的是获取新生成的 Div 的 id 并使用 slice 函数获取我想要的复选框的 id取消选中。 如何使用 id 取消选中我想要的框?

您忘记为 ID 添加前缀 # 或为 class

添加前缀 .

假设是id

 var checkid = $('#' + id.slice(9));
 checkid.prop("checked", false);

或class使用类似

var checkid = $('.' + id.slice(9));
checkid.prop("checked", false);

使用 ID 前缀:

var checkid = $('#' + id.slice(9));

更改此部分:

var checkid = $(id.slice(9));

我们开始:

$("input[type=checkbox]").on( "click", function() {
deptsSelected = '<span id="delete" data-checkbox="'+this.id+'">X</span></div>';
        $("#tabs").append(deptsSelected); 
});

    $(document).on("click", "#delete", function(e) { 
            var id = $(this).parent().attr('id');
            var checkboxID = $(this).attr('data-checkbox');
            e.preventDefault(); 
            $(this).remove();
            $('#'+checkboxID).attr('checked', false);
  });

http://jsfiddle.net/uure20xe/

这是我所做的:

$("input[type=checkbox]").on( "click", function() {
    deptsSelected = '<div id = "selected_'+this.id+'">  '+ $("label[for='" + this.id + "']").text() + '<span class="delete">X</span></div>';
    $("#tabs").append(deptsSelected); 

});

$(document).on("click", ".delete", function(e) { 
    var parent = $(this).parent();
    var id = parent.attr('id')
    parent.remove();  
    var checkid = $('#'+id.replace("selected_", ""));
    checkid.prop("checked", false);
});

您的代码仍然存在一些问题,例如:如果我自己取消选中该复选框,它会附加 div,但这不是您问题中的问题。

这里是jsfiddle