所以我有这段代码
<ul id="id_priori">
<li>
<label for="id_priori_0">
<input id="id_priori_0" name="priori" type="radio">Hola
</label>
</li>
</ul>
这段代码
$("#id_tipo").on('click', 'li', function () {
var self = $(this),
radio = self.find(":radio")[0];
radio.checked = !radio.checked;
self.toggleClass('on', radio.checked);
})
.find(":radio").each(function () {
$(this).closest('li').toggleClass('on', this.checked);
});
我想要的是取消所有未检查无线电的标签,不知道吗?
答案 0 :(得分:1)
$(":radio:not(checked)").each(function () {
$(this).closest('li').removeClass('on');
});
无论如何,假设所有无线电都已连接,并且始终只检查了一个,整个代码可能更简单:
$("#id_priori").on('click', 'li', function () {
$(this).find(':radio').prop('checked', true);
$(this).addClass('on').siblings().removeClass('on');
});
看看这个Fiddle。我们可以从这一点开始工作
答案 1 :(得分:0)
假设您的意思是删除每个<label>
中的所有课程,请将其添加到find
:
.find(":radio").each(function () {
if( !this.checked){
$(this).parent('label').removeAttr('class');
}
$(this).closest('li').toggleClass('on', this.checked);
});
答案 2 :(得分:0)
如果你想删除类,请使用@littleLouito Code 否则,如果你想切换尝试这个
$(":radio:not(checked)").each(function () {
$(this).closest('label').toggleClass("on", this.checked);
});