复选框中的jQuery addClass和removeClass
jQuery addClass and removeClass in checkboxes
我是jQuery的新手,我正试图弄清楚如何创建复选框的jQuery功能,我想要实现的是,当用户单击"是"时,复选框(将显示:none)将有一个复选标记。但是,如果用户单击"否",则复选标记将被删除。
这将是多个"是"和多个"否"的选择
看看我正在处理的页面http://jsfiddle.net/4x2f52ka/
我已经启动了它的脚本,但由于某种原因,当我开始在第一个选择中选择"是",在第二个选择中再选择"是的"时,如果我要在第三个项目中选择"否",则2个"是"将被删除。如果我选择全部是和全部否是可以的,但如果我要选择另一个是和否,它不允许我这样做。
这是我的html 代码
<div class="row marginBottom">
<div class="col-xs-6">
<label class="alignMid">Have you found a property?</label>
</div>
<div class="col-xs-6">
<span class="opt_yes"><p style="line-height: 38px; font-size:15px;">YES</p></span>
<span class="opt_no"><p style="line-height: 38px; font-size:15px;">NO</p></span>
<input type="checkbox" name="FoundProperty"/>
</div>
</div>
<div class="row marginBottom">
<div class="col-xs-6">
<label class="alignMid">Would you like a free RP Data Property Report?</label>
</div>
<div class="col-xs-6">
<span class="opt_yes"><p style="line-height: 38px; font-size:15px;">YES</p></span>
<span class="opt_no"><p style="line-height: 38px; font-size:15px;">NO</p></span>
<input type="checkbox" name="FreeRPData" />
</div>
</div>
这是我的jQuery 代码
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('.opt_yes').click(function () {
jQuery(this).addClass('selected');
jQuery('.opt_no').removeClass('selected')
if (jQuery(this).hasClass('selected')) {
jQuery(this).parent().find("input[type='checkbox']").prop('checked', true);
}
});
jQuery('.opt_no').click(function () {
jQuery(this).addClass('selected');
jQuery('.opt_yes').removeClass('selected')
if (jQuery(this).hasClass('selected')) {
jQuery(this).parent().find("input[type='checkbox']").prop('checked', false);
}
});
});
</script>
有人能帮我吗?
您正在丢失复选框的上下文。它是有效的,因为您使用this
,但对于无项目,您只需使用jQuery('.opt_no')
抓取文档上的每个"无框"。因为它太宽了,所有"无框"框都会受到影响。
使用以下语法可以非常容易地缩小选择器的范围:jQuery('selector', context)
。
在这种情况下,我推荐this.parentNode
,如下所示:
jQuery('.opt_yes', this.parentNode).removeClass('selected')
请在此处查看我的演示:http://jsfiddle.net/m5aug81a/
有关为jQuery对象使用上下文的更多信息,请参阅此处的
您必须仅从yes或no的同级中删除所选类。以下是代码:
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('.opt_yes').click(function () {
jQuery(this).addClass('selected');
jQuery(this).siblings('.opt_no').removeClass('selected')
if (jQuery(this).hasClass('selected')) {
jQuery(this).parent().find("input[type='checkbox']").prop('checked', true);
}
});
jQuery('.opt_no').click(function () {
jQuery(this).addClass('selected');
jQuery(this).siblings('.opt_yes').removeClass('selected');
if (jQuery(this).hasClass('selected')) {
jQuery(this).parent().find("input[type='checkbox']").prop('checked', false);
}
});
});
</script>
相关文章:
- 什么是“;右“;使用addClass/delay/removeClass的方法
- jQuery addClass/removeClass转换不是平滑的,而是断断续续的
- removeClass(如果单击addClass)
- 有人可以帮助我调试带有addClass和removeClass函数的“每个会话一次”cookie吗?
- jQuery addClass/removeClass在调试期间工作,但不能正常执行
- 无法获取removeClass或addClass的angularjs动画类断点
- 在IE9和jQuery上选择addClass和removeClass
- Jquery AddClass and RemoveClass
- 如何使用addclass和removeclass方法更改textarea(NicEdit中使用的textarea)的cs
- 我的addClass和removeClass代码似乎不适用于Bootstrap Glyphicons
- addClass 和 removeClass 无法正常工作
- addClass/removeClass doesn't apply
- Animating addClass & removeClass with jQueryUI or CSS
- 为 addClass/removeClass 提供持续时间
- 使用 jquery 将动画效果添加到 addClass/removeClass
- JQuery - ToggleClass/AddClass/RemoveClass
- addClass/removeClass 基于所选项目数据属性
- jQuery RemoveClass/addClass analog Javascript
- jQuery延迟切换Class/removeClass/addClass
- 我的javascript removeClass + addClass时,点击只在Chrome上工作,而不是Firefo