使用td属性计算乘积之和

Calculate the sum of products using a td attribute

本文关键字:计算 td 属性 使用      更新时间:2023-09-26

我有这个表:

<table>
    <thead>
        <tr>
            <th>Quantity</th>
            <th>&nbsp;</th>
            <th>Price</th>
            <th>Sum</th>
        </tr></thead>
    <tbody>
        <tr class="sum">
            <td><input class="qty" type="text" value="1" /></td>
            <td>German format: </td>
            <td data_price="1375.5">1.375,50 &euro;</td>
            <td></td>
        </tr>
        <tr class="sum">
            <td><input class="qty" type="text" value="1" /></td>
            <td>English format:</td>
            <td data_price="1375.5">&euro;1,375.50</td>
            <td></td>
        </tr>
        <tr class="sum">
          <td><input name="text" type="text" class="qty" value="1" /></td>
          <td>French format:</td>
          <td data_price="1375.5">1 375,50 &euro;</td>
          <td></td>
        </tr>
        <tr class="sum">
          <td><input name="text2" type="text" class="qty" value="1" /></td>
          <td>Italian format:</td>
          <td data_price="1375.5">&euro;1,375.50</td>
          <td></td>
        </tr>
        <tr class="sum">
             <td><input class="qty" type="text" value="1" /></td>
             <td>Spanish format:</td>
            <td data_price="1375.5">&euro; 1.375,50</td>
            <td></td>
        </tr>
        <tr>
            <td colspan="3">Total</td>
            <td id="total"></td>
        </tr>
    </tbody>
</table>

,我想使用属性"data_price"的值来计算SUM,如下链接所示:http://jsfiddle.net/QmTNZ/77/

我想在计算中只使用属性"data_price"而不使用。

请帮助,我仍然是jquery的初学者:)

对于price单元格,您应该使用以下格式:

<td data-price="1375.5">&euro;1,375.50</td>

。使用连字符,而不是下划线

你可以使用:

$('td').data('price')

访问其值-参见http://api.jquery.com/data

var sum = 0;
$('.sum').each(function() {
    var q = parseFloat($(this).find('.qty').val());
    var p = parseFloat($(this).find('td').eq(2).data('price'));
    sum += q * p;
});
$('#total').text(sum);

工作演示:http://jsfiddle.net/alnitak/gzYhN/

Try

var sum=0;
$('tbody > tr >  td[data_price]').each(
   function()
   {
      sum += parseFloat(this.attr('data_price'));
   }
);

试试:http://jsfiddle.net/ptfKJ/