我有一组单选按钮,我要做的是循环并隐藏任何未选中的单选按钮(addClass .hiddenRadio)。另一方面是我需要在另一个事件上再次启用它们点击
<input class="radio" type="radio" name="sex_1" value="male" /><label>Male</label>
<input class="radio" type="radio" name="sex_1" value="female" /><label>Female</label>
<input class="radio" type="radio" name="sex_2" value="male" /><label>Male</label>
<input class="radio" type="radio" name="sex_2" value="female" /><label>Female</label>
男 女
答案 0 :(得分:3)
两行代码就足够了:
$("input[type=radio]:not(:checked)").addClass("hiddenRadio");
$("input[type=radio]:not(:checked) + label").addClass("hiddenLabel");
无需使用each()
进行循环或使用next()
手动查找标签 - 只需让选择器完成工作!
这是一个演示(不隐藏,但改变颜色)的jsfiddle:
此外,无需为每个单选按钮添加class='radio'
。只要您不打算支持IE6,属性选择器[type=radio]
就足够了。
答案 1 :(得分:0)
这样的事情:http://jsfiddle.net/GTzL4/4/
<强> HTML 强>
<input class="radio" type="radio" name="sex_1" value="male" checked /><label>Male</label>
<input class="radio" type="radio" name="sex_1" value="female" /><label>Female</label>
<input class="radio" type="radio" name="sex_2" value="male" /><label>Male</label>
<input class="radio" type="radio" name="sex_2" value="female" checked /><label>Female</label>
<button onclick="hideUnSelected()">Hide</button>
<button onclick="showAll()">Show</button>
<强> CSS 强>
.hidden{display:none;}
<强> JS 强>
function hideUnSelected(){
$('.radio:not(:checked)').each(function(){
$(this).addClass('hidden').next('label').addClass('hidden');
});
}
function showAll(){
$('.radio').each(function(){
$(this).removeClass('hidden').next('label').removeClass('hidden');
});
}
答案 2 :(得分:-1)
请参阅以下内容,选择所有未选中的radio
类输入并隐藏相应的标签:
$(".radio:not(:checked)").each(function() {
// If you the hiddenRadio class added to both
$(this).addClass("hiddenRadio").next().addClass("hiddenRadio");
// Otherwise if you just want to hide the label
$(this).addClass("hiddenRadio").next().hide();
});