Javascript 单选按钮选择Jquery中的addClass和removeClass

Javascript 单选按钮选择Jquery中的addClass和removeClass,javascript,jquery,html,radio-button,checked,Javascript,Jquery,Html,Radio Button,Checked,我有两套不同的单选按钮。但单选按钮显示为图像。我的问题是选择图片(单选按钮),我希望其他图片被隐藏。所以我的想法是将类添加到checked,而不是将另一个类添加到notchecked。基于未选中的上的类,我可以隐藏这些 我的问题是因为我有两套单选按钮,一套是大小单选按钮,另一套是原因单选按钮,我想让它们区别开来。所以当我选择大小时,我不想让所有原因单选按钮都隐藏起来 因此,我可以分别区分它们并针对它们 如果我添加这行代码: $('label:has(input:radio:checked)').

我有两套不同的单选按钮。但单选按钮显示为图像。我的问题是选择图片(单选按钮),我希望其他图片被隐藏。所以我的想法是将类添加到checked,而不是将另一个类添加到notchecked。基于未选中的上的类,我可以隐藏这些

我的问题是因为我有两套单选按钮,一套是大小单选按钮,另一套是原因单选按钮,我想让它们区别开来。所以当我选择大小时,我不想让所有原因单选按钮都隐藏起来

因此,我可以分别区分它们并针对它们

如果我添加这行代码:

$('label:has(input:radio:checked)').addClass('activeReason');
它适用于我不想要的所有单选按钮。

这是我的单选按钮:大小

    <form id="sign-condition">

          <label>
            <input type="radio" name="sign-condition"  class="sign-condition" value="new_sign" />
            <img src="../../css/icons/new-signs.png">
          </label>

          <label>
            <input type="radio" name="sign-condition" class="sign-condition"  value="old_sign"/>
            <img src="../../css/icons/old-signs.png">
          </label>
    </form>

这是我的单选按钮:原因

    <div class="col-md-6">

                <form id="sign-reason">

                  <label>
                    <input type="radio" name="sign-reason" value="damaged" />
                    <img src="../../css/buttons/damaged.png">
                  </label>

                  <label>
                    <input type="radio" name="sign-reason" value="odd-size"/>
                    <img src="../../css/buttons/odd-size.png">
                  </label>

                  <label>
                    <input type="radio" name="sign-reason" value="not-correct-standard"/>
                    <img src="../../css/buttons/not-correct-standard.png">
                  </label>
     </form


获取当前单击单选按钮的名称和值,然后按名称获取单选按钮(本机javascript或jQuery),它将是一个数组,使用您知道的最佳方法遍历数组,并在值不等于当前单击单选按钮的位置隐藏单选按钮


希望有帮助。

试试下面的JS代码。用临时代码替换它

<script>
    $(document).ready(function(){
        $(#sign-condition input:radio).click(function() {
            $('label>.sign-condition:has(input:radio:not(:checked))').removeClass('activeCondition').addClass('disable');
            $(this).removeClass('disable').addClass('activeCondition');
        });
    });
</script>

$(文档).ready(函数(){
$(#签名条件输入:收音机)。单击(函数(){
$('label>.sign条件:has(输入:radio:not(:checked))).removeClass('activeCondition').addClass('disable');
$(this).removeClass('disable').addClass('activeCondition');
});
});

getElementsByName应按单选按钮的名称返回数组。然后根据该结果,使用您的逻辑在选中的按钮上添加类。

我不确定这是否是您需要的:

$(文档).ready(函数(){
$('input:checkbox').change(function(){
/*获取收音机的父节点,然后仅隐藏其同级节点*/
$(this.parent('label').sides().toggle();
});
});


如果首先转到表单元素(
.parents()
),然后使用该元素仅查找该元素下的标签,或者将其作为上下文传递,则可能最简单。是否要对同一单选按钮或其他set单选按钮执行操作?通过您的代码,我可以看到您只在同一台收音机上执行操作。我希望用户做的是选择大小和原因。当用户选择大小时,其他大小选项应消失,当选择原因时,其他原因应消失。问题:如果用户单击一个选项,所有其他选项将消失。。如果用户改变主意,选择其他选项怎么办?@Amani,我最好添加一个切换功能。因此,单击将隐藏选项,再次单击将再次显示选项。谢谢。我刚刚看到你最后的评论回复。因此,出于原因和条件,您需要再次使用不同的标识符。它可以是你的表单名,所以在广播点击事件前加上表单名,这太神奇了@Amani。非常感谢你。最后一个问题;单击单选按钮将隐藏其同级,如果我想添加toggle(),则单击将隐藏同级,再次单击将再次显示该选项。将toggle()工作。
$(this).parent('label').sides().toggle()我试过了,但没有成功。然后你需要使用复选框not Radios我更新了答案..如果你继续使用radio。。。选择一个选项并隐藏所有其他选项后,您不能再次取消选择,因为您必须选择一个选项。
<script>
    $(document).ready(function(){
        $(#sign-condition input:radio).click(function() {
            $('label>.sign-condition:has(input:radio:not(:checked))').removeClass('activeCondition').addClass('disable');
            $(this).removeClass('disable').addClass('activeCondition');
        });
    });
</script>