代码:
$(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取消选中我想要的方框?
答案 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);
});
答案 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