我有以下脚本来计算HTML表的平均行数:
$(document).ready(function() {
$('tr').each(function() {
var count = 0;
var totmarks = 0;
$(this).find('.subjects').each(function() {
var marks = $(this).text();
if (marks.lenght !== 0) {
totmarks += parseFloat(marks);
count += 1;
}
});
$(this).find('#TotMarks').html(totmarks / count);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border="1" style="text-align:center;">
<thead>
<tr>
<th>Student Name</th>
<th>Math</th>
<th>Spanish</th>
<th>Science</th>
<th>Average</th>
</tr>
</thead>
<tbody>
<tr>
<td>Pedro</td>
<td class="subjects">4.0</td>
<td class="subjects">5.0</td>
<td class="subjects">6.0</td>
<td id="TotMarks"></td>
</tr>
</tbody>
</table>
然后平均列将显示整数5而不是5.0,有解决方案吗?
在JavaScript中,整数总是不带小数点显示使用toFixed(number_of_digits_after_decimal)
进行小数
从而解决
$(this).find('#TotMarks').html((totmarks/count).toFixed(1));
这会得到你想要的结果。
使用toFixed()
。
toFixed()
方法使用定点表示法格式化数字。
$(document).ready(function() {
$('tr').each(function() {
var count = 0;
var totmarks = 0;
$(this).find('.subjects').each(function() {
var marks = $(this).text();
if (marks.lenght !== 0) {
totmarks += parseFloat(marks);
count += 1;
}
});
$(this).find('#TotMarks').html((totmarks / count).toFixed(1));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border="1" style="text-align:center;">
<thead>
<tr>
<th>Student Name</th>
<th>Math</th>
<th>Spanish</th>
<th>Science</th>
<th>Average</th>
</tr>
</thead>
<tbody>
<tr>
<td>Pedro</td>
<td class="subjects">4.0</td>
<td class="subjects">5.0</td>
<td class="subjects">6.0</td>
<td id="TotMarks"></td>
</tr>
</tbody>
</table>
用(totmarks/count).toLocaleString(undefined, {minimumFractionDigits: 1})
替换totmarks/count
能达到您想要的目的吗?
请参阅Number.protype.toLocaleString((了解如何格式化数字以进行显示。