在 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);
});
这是我所做的:
$("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
代码:
$(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);
});
这是我所做的:
$("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