在单选按钮 select 上 Jquery 中的 addClass 和 removeClass

addClass and removeClass in Jquery on radio button select

我有两套不同的单选按钮。但是单选按钮显示为图像。我的问题是关于图片的select(单选按钮),我希望其他图片隐藏起来。所以我的想法是将 class 添加到选中状态,而不是添加另一个 class 到未选中状态。基于未选中的 class,我可以隐藏它们。

我的问题是因为我有 2 组单选按钮,一组用于尺寸,一组用于原因,我希望它们在我 select 尺寸时区分 them.So,我不想要所有原因单选按钮变为隐藏。

所以我可以分别区分它们并针对它们。

如果我添加这行代码:

$('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

这里是 JQuery,我试图以不同的方式针对每个集合。

  <script>
        $(document).ready(function(){ 

        $('input:radio').click(function() {
            $('label>.sign-condition:has(input:radio:checked)').addClass('activeCondition');
            $('label>.sign-condition:has(input:radio:checked)').removeClass('disable');
            $('label>.sign-condition:has(input:radio:not(:checked))').removeClass('activeCondition');
            $('label>.sign-condition:has(input:radio:not(:checked))').addClass('disable');

        });



        });
        </script>

如何以不同方式定位每组单选按钮。谢谢

获取当前点击的单选按钮的名称和值,然后通过名称获取单选按钮(原生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>

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

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

$(document).ready(function(){ 
    $('input:checkbox').change(function() {
       /*get the parent node of the radio and then hide only its siblings*/
       $(this).parent('label').siblings().toggle();
    });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="sign-condition">

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

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

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

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

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