我一直试图将JQUERY函数转换为JavaScript。我不知道我做错了什么。在JS中重写函数时返回的值全部返回0.0。
下面是我想要转换为纯JavaScript的JQUERY代码:
$('#tableID > tbody > tr > td:nth-child(' + starter + ')').each(function () {
getAverage('#tableID > tbody > tr > td:nth-child(' + starter + ')', 'subTotal');
})基本上,我希望删除.each()并使用本机JavaScript .
以下是完整的代码:
var el1 = $('#tableID > thead > tr > th:gt(17):not(.totalRow)');
var x = el1.length;
var starter = 19;
for (i = 0; i < x; i++) {
$('#tableID > tbody > tr > td:nth-child(' + starter + ')').each(function () {
getAverage('#tableID > tbody > tr > td:nth-child(' + starter + ')', 'subTotal');
})
starter += 1;
}下面是帮助理解正在发生的事情的getAverage函数:
//average function
function getAverage(a, b) {
var $this, $content, tdTxt, theAvg;
var sum = 0;
var count = 0;
$(a).each(function () {
$this = $(this); // cache $(this)
$content = $this.html();
tdTxt = parseFloat($this.text(), 10) || 0;
if ($this.hasClass(b)) {
theAvg = parseFloat((sum / count), 10) || 0;
$this.text((theAvg).toFixed(2));
sum = 0;
count = 0;
} else {
sum += parseFloat(tdTxt);
if ($content == '') {
}
else {
++count; // this micro-optimization makes it marginally faster
}
}
})
}发布于 2016-09-12 13:07:35
ESNext代码
Array.from(
document
.querySelectorAll('#tableID > tbody > tr > td:nth-child(' + starter + ')')
).forEach(_=> getAverage(
'#tableID > tbody > tr > td:nth-child(' + starter + ')',
'subTotal'
))https://stackoverflow.com/questions/39450880
复制相似问题