我想使用相关元素的文本(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));
});
但它不起作用。
答案 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);
});
不同之处在于,不是对字符串执行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>
答案 2 :(得分:1)
答案 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));
});