2012-10-12 224 views
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> 

足夠簡單..我想添加類從選中的收音機和removeClass從未選中的收音機。電臺有一個類命名爲optionaddClass檢查單選按鈕和removeClass從不是:檢查單選按鈕CLASS

我可以在使用$(this).addClass('shippingSet')到addClass,但我不知道如何刪除它。有人可以告訴我正確的方式來添加/刪除類嗎?謝謝。

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 - >

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

回答

1

這是你在找什麼?

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

在原來的小提琴,你添加類的單選按鈕本身不會影響樣式的標籤,和單選按鈕本身沒有文字的顏色改變或BG顏色改變,因此你不會看到任何區別。我只加

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

這將類添加到這是「標籤」的家長,這將影響其中包含的可見文本

+0

是的,這正是我正在尋找的。你能解釋這是如何工作的。我給你了複選標記!謝謝 – fyz

+0

我更新瞭解釋的答案,你應該總是使用firebug來檢查元素,看看jQuery是否工作。由於這個問題是由css – Huangism

+0

引起的謝謝你解釋。 :)我只是在做'$('。option')。removeClass('shippingSet');'而我沒有得到任何錯誤。一直以來我所需要的都是'.parent()'..但是我也嘗試過'$('label')。removeClass('shippingSet');'那沒有用......不會'label' 'parent()'? – fyz

1

努力幫助沒有看到HTML,但你可以試試這個:

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

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

不起作用標籤的TXT和BG。我會用HTML更新 - 謝謝 – fyz

+0

爲什麼它不起作用?你從所有選項中刪除類,然後添加到被檢查的類 – Huangism

+0

@Huangism idk - 我試過了,我嘗試了類似的東西 - 只是不工作.. – fyz

0

迭代直通所有元素並添加和刪除類,檢查:checked屬性。

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

我把你的代碼放在我的空間中。它不工作。這裏添加了HTML ..有什麼問題? – fyz

+0

檢查控制檯部分中是否有任何錯誤 –

+0

控制檯中沒有錯誤 – fyz