0
<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を、チェックされていないラジオからremoveClassが必要です。ラジオには、という名前のクラスがありますoption

を使用してaddClassを使用でき$(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>

デモ -->

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

4

3 に答える 3

1

これはあなたが探しているものですか?

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

元のフィドルでは、ラベルのスタイルに影響を与えないラジオ ボタン自体にクラスを追加しました。ラジオ ボタン自体には変更するテキストの色や変更する bg の色がないため、違いは見られません。追加しただけ

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

これにより、「ラベル」である親にクラスが追加され、表示されるテキストを含むラベルの txt と bg に影響します

于 2012-10-12T20:18:48.120 に答える
1

HTML を見ずに助けるのは難しいですが、これを試すことができます:

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

// add class only to elements that satisfy your criteria
$('.option:checked').addClass('shippingSet');
于 2012-10-12T19:59:40.560 に答える
0

すべての要素を繰り返し処理し、:checked属性をチェックするクラスを追加および削除します。

 $('.option').each(function(){
         if( $(this).is(':checked')){
             $(this).addClass('shippingSet');
         }
         else{
             $(this).removeClass('shippingSet');
         }
    });
于 2012-10-12T20:01:02.963 に答える