1

代码 :

$(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 取消选中我想要的框?

4

4 回答 4

4

您忘记#为 id 或.class添加前缀

假设它是 id

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

或类使用

var checkid = $('.' + id.slice(9));
checkid.prop("checked", false);
于 2015-07-07T10:45:15.943 回答
1

使用 ID 前缀:

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

更改此部分:

var checkid = $(id.slice(9));
于 2015-07-07T10:45:36.700 回答
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/

于 2015-07-07T10:54:02.833 回答
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

于 2015-07-07T10:54:06.760 回答