用jquery获得价值

时间:2015-05-16 21:33:27

标签: jquery twig

我有这样的剧本

$(document).ready(function () {
        var sum = 0;
        $('.price_jq').each(function () {
            var price = $(this);
            alert(price.html());
            var count = price.parent().find('.count_jq');
            alert(count.html());
            sum = (price.html() * count.val());
            $('.cart_total_price').append(sum + "₴");
        });
    });

我的HTML

<table>
  <td class="cart_price">
     <p class="price_jq">{{ product.price }}</p>
  </td>
     <input size="2" name="count" value="2" class="count_jq" type="text"/>
  <td class="cart_total">
     <p class="cart_total_price"></p>
  </td>
</table>

当我提醒价格时,我得到了我的价值,但是当我想要数数时,我得到了NaN。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的HTML代码不正确,因此您要查找的输入很可能完全在桌面之外。这取决于每个浏览器如何处理错误的HTML代码。

您需要表行来放置表格单元格,表格中的所有内容都必须位于表格单元格内。例如:

<table>
  <tr>
    <td class="cart_price">
      <p class="price_jq">{{ product.price }}</p>
    </td>
    <td>
      <input size="2" name="count" value="2" class="count_jq" type="text"/>
    </td>
  </tr>
  <tr>
    <td class="cart_total">
      <p class="cart_total_price"></p>
    </td>
  </tr>
</table>

对于上面的代码,您可以使用.parent().parent().find('.count_jq').closest('tr').find('.count_jq')从price元素中查找count元素:

$(document).ready(function () {
    var sum = 0;
    $('.price_jq').each(function () {
        var price = $(this);
        var count = price.closest('tr').find('.count_jq');
        sum = (price.html() * count.val());
        $('.cart_total_price').append(sum + "₴");
    });
});

我不知道您的要求,但我认为您可能希望将值添加到总和并将其放在循环之后的元素中,而不是为循环中的每个项添加值:

$(document).ready(function () {
    var sum = 0;
    $('.price_jq').each(function () {
        var price = $(this);
        var count = price.closest('tr').find('.count_jq');
        sum += (price.html() * count.val());
    });
    $('.cart_total_price').append(sum + "₴");
});