如何在jquery中基于input属性添加类?

时间:2017-01-20 22:38:16

标签: javascript jquery html

我有一些单选按钮,最初没有设置css,其中checked ="已选中"。

有什么建议我可以用什么类型的jquery语句将类应用于检查输入单选按钮?

我还附上了我的jsfiddle

https://jsfiddle.net/2Lbbf1b4/1/

$(function() {
  $('label.radio-inline input').on('change', function() {
    var name = $(this).attr('name');
    if (true === $(this).prop('checked')) {
      $('[name=' + $(this).attr('name') + ']').parent().removeClass('radio-select');
      $(this).parent().addClass('radio-select');
    }
  });
});


<label class="radio-inline radio-style">
  <input type="radio" checked="checked" name="test1" value="1" class="radio-style">
</label>
<label class="radio-inline radio-style">
  <input type="radio" name="test1" value="2">
</label>
<br>
<label class="radio-inline radio-style">
  <input type="radio" checked="checked" name="test" value="1" class="radio-style">
</label>
<label class="radio-inline radio-style">
  <input type="radio" name="test" value="2">
</label>

2 个答案:

答案 0 :(得分:1)

您可以稍微简化一下,并使用jQuery的.is()辅助方法来检查输入的已检查状态,并将其与具有相同名称的兄弟姐妹进行比较:

$(function() {
    $('label.radio-inline input').on('change', function() {
        if ($(this).is(':checked')) {
            $('input[name="' + $(this).prop('name') +'"]').not($(this)).parent().removeClass('radio-select');
            $(this).parent().addClass('radio-select');
        }
    });
});

Updated jsFiddle

答案 1 :(得分:0)

您需要使用以下方法设置初始化类:

$('label.radio-inline input[type=radio]:checked').parent().addClass('radio-select');

检查小提琴:https://jsfiddle.net/2Lbbf1b4/4/