我可以使用jquery .each()来计算表单中的每一行吗?

时间:2015-07-12 12:41:43

标签: javascript jquery html

我正在创建一个表单,用于计算项目每行的总和。

我已经使用了一段javascript来单独计算每一行但是我想知道我是否可以使用.each()来计算具有相同类的每一行,而不是每行都有一个独特的脚本ID。

脚本应该是:( p元素中带有“price1”类的价格)*(带有“qty1”类的输入元素中的值)。结果需要使用类“total1”

进入input元素

我的页面是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而不是类时才能使用它。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

是的,你可以这样做。使用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);

答案 1 :(得分:0)

使用.closest()

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

DEMO