Jquery复选框影响一个项目而不是所有项目
Jquery checkbox affect one item not all items
我想知道是否有人可以帮助我,请,我有一系列的复选框,当点击改变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');
}
});
您的问题在于您选择.tickIco
和.disabletoggle
元素的方式:
$(".tickIco").show();
$(".disabletoggle").removeAttr("disabled");
这些jquery调用使用选择器匹配所有类的.tickIco
和.disabletoggle
。
脏解(使用 .find()
查找具有匹配类的父元素):
$(this).parent().parent().parent().find(".tickIco").show();
$(this).parent().parent().parent().find('.disabletoggle').removeAttr("disabled")
更好的解决方案:
jQuery选择器将选择的上下文作为第二个参数,因此您可以:
var context = $(this).parent().parent().parent();
$(".tickIco", context).show();
$('.disabletoggle', context).removeAttr("disabled")
相关文章:
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- 通过另一个php应用程序将我的项目推送到Github存储库中
- angularjs移除焦点上的活动类并添加到下一个项目
- 相对于角度控制器中的另一个阵列过滤阵列项目
- 如何通过AngularJS删除一个项目
- 如何使用jquery将所选项目从一个下拉组列表(optgroup)移动到另一个下拉列表(optgroup)
- 获取每个项目中不为 null 的最后一个项目
- 在另一个项目中使用大理石测试rxjs5方法
- 使用javascript/jquery从现有数组中创建一个新数组,该数组保存项目存在的次数
- 如何在猫头鹰旋转木马中滑动所有可见项目,而不是使用上一个/下一个按钮
- Git为整个项目提供一个repo(frontend+node.js)
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- Asp.net 引导下拉菜单 - 选择一个项目
- 处理一个项目,想要添加以下菜单栏,并尽量减少向下滑动
- 如何将从GWT编译的JS添加/访问到另一个外部HTML / JS项目中
- 在angularJs的选择框中预先选择一个项目
- 我想在混合移动应用程序中使用Sqlite插件(Cordova)创建一个示例项目
- 如何将一个表单中的项目添加到 Rails 中另一个表单的下拉选项
- jQuery 使用 ID 作为 URL 选择一个项目
- 淡入<灯光>一个项目一个项目