在jquery中取消选中id旁边的复选框

时间:2015-07-07 10:42:04

标签: javascript jquery checkbox prop

代码:

$(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时,上面的代码应该取消选中特定的Checkbox。 Div是由JQuery动态生成的,所以我在这里所做的是获取新生成的Div的id并使用slice函数来获取我想要取消选中的复选框的id。  如何使用id取消选中我想要的方框?

4 个答案:

答案 0 :(得分:3)

您忘记为ID添加前缀#或为课程

添加.

假设它是id

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

或类使用

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

答案 1 :(得分:1)

使用ID前缀:

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

更改此部分:

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

答案 2 :(得分:1)

我们走了:

$("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/

答案 3 :(得分:1)

这就是我所做的:

$("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