使用jQuery中的元素内容进行计算

时间:2011-09-02 13:54:58

标签: javascript jquery

我想使用相关元素的文本(mcost_el=mcount_el*mprice_el)运行计算,并将结果写入另一个元素的文本(“mcost_el”)。

<tr>
 <td class="mcount_el">2</td>
 <td class="mprice_el">544,33</td>
 <td class="mcost_el">0</td>
</tr>
<tr>
 <td class="mcount_el">3,9</td>
 <td class="mprice_el">460,00</td>
 <td class="mcost_el">0</td>
</tr>

我写这段代码:

var count=0;
var price=0;
$('.mcost_el').each(function(){
      count=parseInt($('.mcount_el').each.text().replace(",","."));
      price=parseInt($('.mprice_el').each.text().replace(",","."));
      $('.mcost_el').html(parseFloat(count)*parseFloat(price));
    });

但它不起作用。

4 个答案:

答案 0 :(得分:3)

这样的事情:

$('tr').each(function(){
   var count=parseFloat($('.mcount_el',this).text().replace(",","."));
   var price=parseFloat($('.mprice_el',this).text().replace(",","."));
   $('.mcost_el', this).html(count*price);
});

实例:http://jsfiddle.net/BzVyc/

不同之处在于,不是对字符串执行parseInt,而是对结果int执行parseFloat,而只需对字符串执行parseFloat

答案 1 :(得分:2)

你需要这样的东西 -

var count=0;
var price=0;
$('tr').each(function(){
      count=parseFloat($(this).find('td.mcount_el').text().replace(",","."));
  price=parseFloat($(this).find('td.mprice_el').text().replace(",","."));
      $(this).find('td.mcost_el').html(count*price);
});

哪个会 -

  • 遍历每个表格行
  • 对于当前表格行,查找计数和价格变量 使用<td>语法
  • 从与当前行相关的$(this).find('td.<classname>')中提取它们
  • 将两个变量相乘,然后将结果添加到总<td>

工作演示 - http://jsfiddle.net/ipr101/AVGgU/1

答案 2 :(得分:1)

可能是

的一部分
elements = $("body").children().length

看看,length

答案 3 :(得分:1)

$("#table_id tr").each(function() {
  var count = parseInt($(this).find(".mcount_el").text());
  var price = parseFloat($(this).find(".mprice_el").text());
  var cost = count * price;
  $(this).find(".mcost_el").text(cost.toFixed(2));
});