我有3个单选按钮。我需要做的是当选择一个单选按钮时,我需要在文本后面应用我的css类名“行”
<span> <input type="radio" name="group1" value="Milk"> Milk </span>
我需要在Milk上申请我的班级 当用户选择其他单选按钮,所以同一个类适用于其他单选按钮文本但删除前一个类。这是我试过的
<style type="text/css">
.line{
text-decoration: line-through;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("input[type='radio']").change(function(){
if($(this).is(':checked'))
//i wana do this
$(this).addClass('line');
//if another is selected so do this
$(this).removeClass('line');
});
});
<div>
<span> <input type="radio" name="group1" value="Milk"> Milk </span> </br>
<span> <input type="radio" name="group1" value="Butter"> Butter </span> </br>
<span> <input type="radio" name="group1" value="Cheese"> Cheese </span> </br>
<hr>
</div>
答案 0 :(得分:4)
由于您需要将班级添加到span
,因此您可以使用parent
从单选按钮访问span
。要从其他span
元素中删除该类,只需将该类从具有相关类的所有元素中删除,然后再将该类添加到刚刚选中的span
中:
$("input[type='radio']").change(function() {
if(this.checked) {
$('span.line').removeClass('line');
$(this).parent().addClass('line');
}
});
请注意使用this.checked
而不是您拥有的jQuery版本。在可能的情况下使用本机DOM属性要快得多。
答案 1 :(得分:3)
$("input[type='radio']").change(function() {
console.log(this.checked)
if (this.checked) {
// remove previously added line class
$('span.line').removeClass('line');
// you should add class to span, because text is
// within span tag, not in input
$(this).parent().addClass('line');
}
});
<强> Working sample 强>