Javascript 根据输入检查进行更改

Javascript 根据输入检查进行更改,javascript,jquery,Javascript,Jquery,如何解决这个问题:我在页面上有许多输入。 当我点击一个输入,它是检查它必须改变颜色的标签取决于它 $document.readyfunction{ $'label.boxextra'.eachfunction{ $this.clickfunction{ 如果$input[type='checkbox'].is':已选中{ $'label.boxextra'.css'background-color','red'; }否则{ $'label.boxextra'.css'background-co

如何解决这个问题:我在页面上有许多输入。 当我点击一个输入,它是检查它必须改变颜色的标签取决于它

$document.readyfunction{ $'label.boxextra'.eachfunction{ $this.clickfunction{ 如果$input[type='checkbox'].is':已选中{ $'label.boxextra'.css'background-color','red'; }否则{ $'label.boxextra'.css'background-color','fff'; } }; }; }; label.boxextra{ 背景:fff; 边框:1px实心D4; 填充:10px; 颜色:000000; } 罗西
castraveti使用此绑定到您的侦听器来查找内部的相关元素

$document.readyfunction{ $'label.boxextra'.eachfunction{ var标签=$this; label.clickfunction{ 如果label.findinput[type='checkbox'].is':已选中{ 标签.css'background-color','red'; }否则{ label.css'background-color','fff'; } }; }; }; label.boxextra{ 背景:fff; 边框:1px实心D4; 填充:10px; 颜色:000000; } 罗西
castraveti设置代码以从标签ID读取颜色:

$document.readyfunction{ $'label.boxextra'.eachfunction{ $this.clickfunction{ 如果!$this.find'input'.is':选中'{ $this.find'input'。prop'checked',true; $this.css'background-color',$this.find'input.attr'id'; }否则{ $this.find'input'。prop'checked',false; $this.css'background-color','white'; } }; }; }; label.boxextra{ 背景:fff; 边框:1px实心D4; 填充:10px; 颜色:000000; } 红色 绿色 蓝色
好的,您可以在每个复选框上有一个单击事件,并使用复选框的id根据相应的标签的颜色更改右标签的颜色

另一方面,在您的原始代码中,为什么要在标签上循环并使用$this.click在循环内,而$label.boxextra.click是执行相同操作的更快方法

$document.readyfunction{ $input[type='checkbox']。单击函数{ //如果选中,则将“颜色”指定为红色,否则为白色 颜色=此。选中?红色:fff; $label[for='+this.id+'].cssbackground color,color; }; }; label.boxextra{ 背景:fff; 边框:1px实心D4; 填充:10px; 颜色:000000; } 罗西 卡斯特拉维蒂只是改变一下

$("input[type='checkbox']").is(':checked') 

$document.readyfunction{ $'label.boxextra'.eachfunction{ $this.clickfunction{ 如果为$input,则该.is':已选中'{ $this.css'background-color','red'; }否则{ $this.css'background-color','fff'; } }; }; }; label.boxextra{ 背景:fff; 边框:1px实心D4; 填充:10px; 颜色:000000; } 罗西
castravetireplace$'label.boxextra'.css'background-color','red';css'background-color'、'red';为什么要将单击事件指定给标签?我们的目标是复选框单击/更改。事件冒泡,这样整体就可以作为一个组件,而不仅仅是单击复选框@AnisR。为什么要将单击事件指定给标签?我们的目标是复选框的单击/更改事件,我们要跟踪的是复选框值!问题中的代码显示这正是用户想要的。@PruteanuAlexandru很高兴这有帮助!如果这个帖子回答了你的问题,请考虑把它标记为答案。祝您今天过得愉快!
$("input", this).is(':checked') 
$('label.boxextra').css('background-color', 'red'); 
$(this).css('background-color', 'red');