2011-11-09 44 views
0

我有一些JavaScript計算價格和更新div。然而在ie7中,calc_sprice顯示€NaN。與ie7的jQuery價格錯誤

我認爲它發生在我把價格格式化。但我不能看到這個問題。它適用於所有其他瀏覽器。

  function formatPrice (price) { 
       var dplaces = price == parseInt(price, 10) ? 0 : 2; 
       price = price.toFixed(dplaces); 

       return price 

      } 

      function calc_supp(showdiv){ 

        var sup = $(showdiv+' .rate_data').attr('sup'); 
        var asup = $(showdiv+' .rate_data').attr('asup'); 
        var csup = $(showdiv+' .rate_data').attr('csup'); 

        //var total_price = $(showdiv+' #total_price').val(); 
        var total_price = $(showdiv+' #tmp_price').val(); 
        total_price = Number(total_price); 

        var tot_adults = 0; 
        var tot_childs = 0; 
        var rooms = 0; 

         $(showdiv + ' select.adu').each(function(){ 
          var tot_as = $(this).val();   
          tot_adults += Number(tot_as); 
          rooms +=1; 
         }); 

         $(showdiv + ' select.chi').each(function(){ 
          var tot_cs = $(this).val();   
          tot_childs += Number(tot_cs); 
         }); 

        var supp = rooms*sup; // total supplement 

        var total_asupp = Number(tot_adults * asup); 
        var total_csupp = Number(tot_childs * csup); 

        var total_sup = Number(supp + total_asupp + total_csupp); 
        var total_total = Number(total_sup + total_price); 
        //alert(supp); 

        $(showdiv + ' .calc_supp span').html(formatPrice(total_sup)); 
        $(showdiv + ' .calc_sprice span').html(formatPrice(total_total)); 
        $(showdiv+' #total_price').val(formatPrice(total_total)); 


      } 
+1

'$(showdiv +'#tmp_price')'...你沒有多個元素的ID'tmp_price'你是否?如果是這樣的話......那可能是你的問題。如果不是的話,你並不需要那裏的'showdiv'位。 – mpen

+0

是的,我真的。這隻會導致ie7問題嗎?據我記憶,這不是一個問題 –

+0

不確定,但它是無效的。一個ID應該唯一標識一個元素。如果你想擁有多個類,請使用類。瀏覽器可能會進行優化,建立在只有一個假設的基礎上。 – mpen

回答

0

使用Id代替class。所有其他瀏覽器都沒有問題,所以沒有發現它,直到我測試ie7