3

我无法在标签中为单选按钮列表添加类,下面是 html 代码:

<div class="custom-radio">
 <input id="MainContent_rblUserType_2" type="radio" checked="checked" value="3" name="MainContent$rblUserType">
 <label class="" for="MainContent_rblUserType_2">I am buyer</label>
</div>

我试图在标签中添加类的 Jquery 是:

$(document).ready(function() {
if($("input.check").is(":checked")){
        $(this).label.addClass("checked");
}
});
4

3 回答 3

9

利用.next()

$("input:radio").next('label').addClass("checked");

此外,您的输入没有任何带有 name 的类check,因此您可能希望将其更改为

$("input:radio").is(":checked")

你也可以这样做而不是你的 if 条件 -

$(document).ready(function() {
    $("input:radio:checked").next('label').addClass("checked");
});

演示---> http://jsfiddle.net/tLFjA/5/

于 2013-06-17T16:36:17.183 回答
1

在您的情况下,$(this)是文档,而不是输入。试试这个:

$(document).ready(function() {
if($("input.check").is(":checked")){
    $(this).label.addClass("checked");
}
});

这个 :

$(document).ready(function() {
    $("input.check:checked").next('label').addClass('checked')
});

此外,您可能需要绑定更改事件。

$('input.check').change(function(){
    var $this = $(this);
    $this.is(:checked) ? $this.next('label').addClass('active') : $this.next('label').removeClass('active') 
})

还有 CSS3 的可能性:

input.check:checked ~ label{ your styles}

~可以是 + 取决于您的 DOM 。

于 2013-06-17T16:38:22.117 回答
1
<div class="custom-radio">
   <input id="MainContent_rblUserType_2" class="check" type="radio" checked="checked" value="3" name="MainContent$rblUserType">
   <label class="checkLabel" for="MainContent_rblUserType_2">I am buyer</label>
</div>


$(document).on("click", 'input.check', function () {
  if ($(this).is(":checked")) {
    $('label.checked').removeClass('checked');
    $(this).next("label.checkLabel").addClass("checked");
  }
});

您需要将类添加到输入和标签,如上所示。
它将一个事件绑定到无线电输入,并在检查时添加类并在未检查无线电输入时删除类
Demo Jsfiddle,http://jsfiddle.net/prem_nagalla1/h7BZa/

于 2013-06-17T16:38:33.213 回答