2014-04-25 19 views
0
var arr = new Array(); 

$('.cartitem').each(function(i,obj){ 


    text = $(this).find('#c').text(); 
    number = text.split("Qty:"); 
    x = parseFloat(number[1]).toFixed(2.0); 

    arr.push(x); 
    alert(arr.toString()); 



    }); 

此循環爲每個項目重複多次相同的調用。如何更改它,以便每個項目僅執行一次上述功能?使用每個()到g

+0

它會爲一個項目只執行一次....你怎麼說這一個項目 –

+0

我添加和刪除的div到購物車中多次執行。每個div都包含一個項目的總金額。在添加和刪除div到購物車後,我點擊結帳按鈕以獲取訂單的總金額。如果添加4個div並刪除1,代碼不會返回3個金額(每個div 1個),但是會提示4個相同的3個未被移除的div。 –

+0

這是怎麼了刪除的div $點擊(函數(){ \t \t $(本).closest( 'DIV ')刪除()(' cartitem IMG。'); \t \t \t ($(this。).closest('div')。empty()。remove())。($('#cartcount')。val($('。cartitem'))。 size()+''+'items')); \t \t }); 該div不再可見和項目計數// $('。cartitem')。size()//反映正確的div大小。如果我添加10個div並刪除5,則代碼將返回10組5個值,而不是5個。 –

回答

0
text = $(this).find('#c').text(); 

不要在這裏使用ID。 ID旨在是獨一無二的,jQuery希望它是。由於這個原因,jQuery可能會一次又一次地選擇相同的項目。改爲使用class。因此,改變你的HTML,這將是

text = $(this).find('.c').text(); 
+0

請解釋投票。 – thedjaney

+0

這並沒有什麼區別 –