jquery单选按钮:选中和$(this).parent

时间:2014-11-18 20:50:29

标签: javascript jquery

页面加载时默认选中单选按钮。我希望包含此单选按钮的标签添加一个CSS类。

我的代码出了什么问题?

JSFIDDLE:http://jsfiddle.net/3ar43086/4/

$(document).ready(function() {
    if ($('input[type=radio]').is(':checked')) {       
    $(this).parent('label').addClass('checked'); }      
});

<label for="myRadio"><input type="radio" id="myRadio" value="Example Radio Button" name="amount" checked>Example Radio Button</label>

.checked { background: yellow; }

2 个答案:

答案 0 :(得分:5)

代码中的

$(this)代表document而不是input

这解决了它:

$(document).ready(function() {
  if ($('input[type=radio]').is(':checked')) {            
    $('input[type=radio]').parent('label').addClass('checked'); 
  }
});

你也可以这样做:

$(document).ready(function() {
  $('input[type=radio]:checked').parent('label').addClass('checked'); 
});

答案 1 :(得分:0)

以下行中的

this指的是window

$(this).parent('label').addClass('checked');

你应该这样做:

$(document).ready(function() {
    var myInput = $('input[type=radio]');
    if (myInput.is(':checked')) {       
    myInput.parent('label').addClass('checked'); }      
});

或者,如果您想要处理页面上的所有input

$(document).ready(function() {
    $('input[type=radio]').each(function(){
        if ($(this).is(':checked')) {       
            $(this).parent('label').addClass('checked');
        }      
    });
});