检查不同的无线电时,在div上切换类

时间:2014-04-26 04:01:39

标签: jquery radio addclass checked toggleclass

坚持看似简单的任务并尝试了一些变化而没有成功。我有一个表,标签中有一些无线电。每个无线电与同一列中的一组数据协同工作。当我点击其中的无线电时,我想添加/删除一个类或toggleClass,以便在用户选择不同选项时突出显示每一列。

在这里创建了一个我想要完成的示例:

JS FIDDLE

 <form id="myForm">
 <table>
<tr>
<th class="highlightMe option"> <input type="radio" name="radioName" value="1" checked="checked" class="option"/>one 
 </th>
 <th class="noClass option"><input type="radio" name="radioName" value="2" class="option"/>two 
 </th>
  <th class="noClass option"><input type="radio" name="radioName" value="3" class="option"/>three 
  </th>
  </tr>
  <tr>
   <td class="highlightMe">Highlight Me</td>
   <td class="noClass option">Or Highlight Me</td>
   <td class="noClass option">Or highlight three</td>
   </tr>
   </table>
   </form> 

一个带背景的简单类,用于突出显示所有表数据列:

.highlightMe {
background:#D32F32;
}

我尝试过的一个失败的脚本:

  $('.option').each(function() {
var $this = $(this);
if($this.attr('checked')) {
    $this.addClass('highlightMe');
 } else {
    $this.removeClass('highlightMe');
 }
});

1 个答案:

答案 0 :(得分:1)

尝试

jQuery(function($) {
    $('.option').change(function() {
        var $this = $(this), $td = $this.parent(), $tr=$td.parent();

        $tr.next().add($tr).find('.highlightMe').removeClass('highlightMe');

        if(this.checked) {
            $tr.next().find('td').eq($td.index()).add($td).addClass('highlightMe')
        }
    });
});

演示:Fiddle