我想知道是否有人可以帮助我,我有一系列复选框,单击这些复选框可更改 div 背景、激活 2 个输入并添加勾选图标。我的问题是,当选中一个复选框时,类 .TickIco 会显示所有内容,.disableToggle 也会显示
我怎样才能让它一次只影响一个 .checkBG 而不是所有?
希望这个 JSFiddle 能帮助解释我的意思。
https://jsfiddle.net/jayjay89/xfg96we5/
谢谢
$(".checkBG").click(function () {
var checked = $(this).is(':checked');
var location = $(this).parent().parent().parent();
if (checked) {
$(this).parent().parent().parent().addClass("activeformBlock");
$(".tickIco").show();
$(".disabletoggle").removeAttr("disabled");
} else {
$(this).parent().parent().parent().removeClass("activeformBlock");
$(".tickIco").hide();
$(".disabletoggle").attr('disabled', 'disabled');
}
});
谢谢
您可以使用将在其中查找选择器的上下文。
您已经有了 location 变量,它是其中一行的父上下文
$(".checkBG").click(function () {
var checked = $(this).is(':checked');
var location = $(this).parent().parent().parent();
if (checked) {
$(this,location).parent().parent().parent().addClass("activeformBlock");
$(".tickIco",location).show();
$(".disabletoggle",location).removeAttr("disabled");
} else {
$(this,location).parent().parent().parent().removeClass("activeformBlock");
$(".tickIco",location).hide();
$(".disabletoggle",location).attr('disabled', 'disabled');
}
});
我是一名优秀的程序员,十分优秀!