使用带有无线电组的jquery来切换父<label>类属性

时间:2018-02-03 18:30:37

标签: jquery radio-button

我搜索过了。

这个想法是当选择一个无线电时,它的父标签会改变class =&#34; sample&#34; to class =&#34;选择样本&#34;。

我有。

问题是当我选择其中一个分组的&#34;无线电好友&#34;我需要:

  1. 将当前所选电台的父母标签更改回&#34;示例&#34;
  2. 将现在选定的父标签更改为&#34;选择样本&#34;
  3.   

    标签类=&#34;样本&#34;&gt;

    <div class="col">    
     <div class="form-check d-inline">
      <input type="radio" name="event_type" class="form-check-input">
      Wedding Reception    
     </div>   
    </div>  
    

    /标签&gt;

     $('.sample').click(function() { $(this).addClass('selected'); });
    

    谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用方法1或方法2:

方法1 :(来自您的帖子)

$('.sample').click(function() {
   // Remove the existing 'selected' class. It will fulfill your first question
   $('.sample.selected').removeClass('selected'); 
  // Add the 'selected' class for newly clicked radio button's parent label element. It will fulfill your second question
   $(this).addClass('selected'); 
});

方法2:

$('input[type=radio]').change(function(){
 // Remove the existing 'selected' class. It will fulfill your first question
  $('label.sample.selected').removeClass('selected');
 // Add the 'selected' class for newly clicked radio button's parent label element. It will fulfill your second question
  $(this).closest('label.sample').addClass('selected');
});

方法1缺点:

  • 如果已选择的单选按钮再次单击。方法1执行功能(删除并添加相同标签的选定类),即使相同的单选按钮
  • 这将在方法2中避免。即方法2仅在单选按钮更改时调用。