如何从多个元素中获取值

时间:2015-08-24 05:36:23

标签: javascript jquery

我希望在更新数量时更新购物车页面中所有产品的总数。 我试过的是

$d=$table.each(function(){
        return Number($(this).find('.cart_price>p>span').html())*Number($(this).find('.cart_quantity_input').val());
    }).toArray();
    alert($d.length);

但似乎只从第一个产品中获取价值 我尝试.map()但结果相同。 我甚至尝试了total+=而不是returntotal=0首先初始化),但它的返回值仅来自第一个<tr>

我在<tr>内的HTLM的<table>看起来像是:

<tr>
    <td class="cart_product">
        ...
    </td>
    <td class="cart_description">
        ...
    </td>
    <td class="cart_price">
        <p>₹<span>20</span></p>
    </td>
    <td class="cart_quantity">
        <div class="cart_quantity_button">
            <a class="cart_quantity_up" href="#"> + </a>
            <input class="cart_quantity_input" type="text" name="quantity" value="8" autocomplete="off" size="2">
            <a class="cart_quantity_down" href="#"> - </a>
        </div>
    </td>
    <td class="cart_total">
        <p class="cart_total_price"> ₹<span>160</span></p>
    </td>
    <td class="cart_delete">
        ...
    </td>
</tr>

我只需要每个(cart_price>span>p)*(.cart_quantity_input.val())的总和。

PS:alert($d.length);只是在测试时检查tr没有,但我需要总和不计算

4 个答案:

答案 0 :(得分:2)

您需要首先遍历每个tr然后找到值。

$array=$table.find('tr').each(function(){
    var price = Number($(this).find('.cart_price>p>span').html());
    var qty = Number($(this).find('.cart_quantity_input').val());
    return price*qty;
}).toArray();
alert($array.length);

或计算总和:

total=0;
$table.find('tr').each(function(){
    var price = Number($(this).find('.cart_price>p>span').html());
    var qty = Number($(this).find('.cart_quantity_input').val());
    total+= price*qty;
});
alert(total);

答案 1 :(得分:0)

假设$table是您的表$table.each(),只会在桌面上运行一次。

要为每个表行执行函数

$table.find('tr').each()

答案 2 :(得分:0)

您可以迭代表中的每个tr并将值与

相加
var sum = 0;
$table.find('tr').each(function () {
    sum += ($(this).find('.cart_price > p > span').text() * $(this).find('.cart_quantity_input').val()) || 0;
});
alert(sum)

答案 3 :(得分:-1)

function getTotalPrice(){
var quantity =$('#cart_quantity_input').val();
var price= $('#cart_price').text();

var total = quantity * price;
alert(total);
}

尝试使用id这对我有用。