2015-07-12 25 views
0

我正在創建一個計算項目每行總數的表單。我可以使用jquery .each()來計算表單中的每一行嗎?

我已經使用了一塊javascript來單獨計算每一行,但我想知道是否可以使用.each()來計算具有相同類的每一行,而不是每行使用一段腳本唯一身份。

該腳本應該是:(p類元素中包含類「price1」的價格)*(類爲「qty1」的輸入元素中的值)。結果需要進入帶班「共1頁的」輸入元素

我的頁面是http://www.catering-equipment.co.uk/portal1/ 我創建了一個的jsfiddle在這裏 - >https://jsfiddle.net/1y7kudtv/4/

$(".qty1").on('keyup', function() { 
    // alert('pressed') 
    var total = $(".price1").html() * $(this).val() 
    $(".total1").val(total); 
}) 

你可以在javascript代碼看到我的努力但只有當我使用它與唯一的ID而不是一個類時它纔會起作用。

預先感謝您。

回答

0

使用.closest()

$(this).closest('.itemrow').find('.total1').val(total); 

DEMO

+0

嗨,這隻需要.price1的第一個實例,這意味着,在我的示例中,每一行都是* 2.17 – nachonat94

+0

只需使用相同的邏輯? '(this).closest('。itemrow')。find('。price1')'[DEMO](https://jsfiddle.net/1y7kudtv/11/) –

+0

這很好用!非常感謝!一直試圖弄清楚幾個小時! :) – nachonat94

0

是的,你可以做到這一點。使用find僅查找元素在當前選擇:

$('.itemrow').each(function() { 
    var price = $(this).find('.price1').html(); 
    var quantity = $(this).find('.qty1').val(); 

    var total = price * quantity; 

    $(this).find('.total1').val(total); 
}); 

還要注意,你處理的浮動算術這裏,所以最好是圓總,以避免像10.99999999顯示的東西:

var total = (price * quantity).toFixed(2); 
+0

我加了這個,它並不像計算keyup那樣進行計算。我將如何實現這一點? – nachonat94

相關問題