将Class添加到选中的单选按钮并从中删除Class:CLASS选中单选按钮

时间:2012-10-12 19:57:14

标签: jquery

<script type="text/javascript">
$(document).ready(function() {
      $('label').click(function() {
         var total = 0;

          $('.option:checked').each(function() {
              total += Number($(this).data('number'));   
              total = total.toFixed(2); 

          });

              $('#ship_total').text(total);

                var sub_total = <?php echo $this->cart->total(); ?>;

                var ship_total = ($("#ship_total").text());

                var final_total = parseFloat(sub_total) + parseFloat(ship_total);

                final_total = final_total.toFixed(2);

            $('#new_total').text(final_total);

        $('.option:not(:checked)').removeClass('shippingSet');
        $('.option:checked').addClass('shippingSet');
      });
    });
</script>

足够简单..我想将addClass添加到已检查的radio和removeClass中。电台有一个名为option

的班级

我可以使用$(this).addClass('shippingSet')添加类,但我不知道如何删除它。有人可以告诉我添加/删除课程的正确方法吗?感谢。

HTML

<label><input type="radio" name="ship" class="option" data-number="<?php echo $shipTotal['Ground']; ?>" value="S1"/> Ground <b>$<?php echo $shipTotal['Ground']; ?></b></label>

DEMO - &gt;

http://jsfiddle.net/vdgAQ/1/

3 个答案:

答案 0 :(得分:1)

如果没有看到HTML,很难提供帮助,但您可以尝试这样做:

// remove class from all option elements
$('.option').removeClass('shippingSet'); 

// add class only to elements that satisfy your criteria
$('.option:checked').addClass('shippingSet');

答案 1 :(得分:1)

这是你在找什么?

http://jsfiddle.net/vdgAQ/2/

在您的原始小提琴中,您将该类添加到单选按钮本身,这不会影响标签的样式,单选按钮本身没有要更改的文本颜色或要更改的颜色,因此您将看不到任何区别。我只添加了

$('.option').parent().removeClass('shippingSet');
$('.option:checked').parent().addClass('shippingSet');

这会将类添加到父项“label”,它会影响包含可见文本的标签的txt和bg

答案 2 :(得分:0)

迭代所有元素并添加和删除检查:checked属性的类。

 $('.option').each(function(){
         if( $(this).is(':checked')){
             $(this).addClass('shippingSet');
         }
         else{
             $(this).removeClass('shippingSet');
         }
    });