javascript:在循环中添加浮动
我有一个过滤器函数,基于它隐藏表行。如果行未被隐藏,我想从表中添加javascript:在循环中添加浮动,javascript,math,floating-point,calculation,Javascript,Math,Floating Point,Calculation,我有一个过滤器函数,基于它隐藏表行。如果行未被隐藏,我想从表中添加浮点值,然后替换表下的原始总和字段。到目前为止,我得到了以下信息,但由于某种原因,它无法工作,我也不知道为什么: function filter() { var input, filter, table, tr, origresults, origsum, newresults, newsum, td, i; input = document.getElementById("input"); filter = inpu
浮点值
,然后替换表下的原始总和字段。到目前为止,我得到了以下信息,但由于某种原因,它无法工作,我也不知道为什么:
function filter() {
var input, filter, table, tr, origresults, origsum, newresults, newsum, td, i;
input = document.getElementById("input");
filter = input.value.toUpperCase();
table = document.getElementById("list");
tr = table.getElementsByTagName("tr");
origresults = document.getElementById("results");
origsum = document.getElementById("sum");
newresults = 0;
newsum = 0.0;
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
newresults++;
newsum += parseFloat(td);
} else {
tr[i].style.display = "none";
}
}
}
origresults.innerHTML = newresults;
origsum.innerHTML = parseFloat(newsum).toFixed(2);
}
函数过滤器(){
var输入、过滤器、表格、tr、origresults、origsum、newresults、newsum、td、i;
输入=document.getElementById(“输入”);
filter=input.value.toUpperCase();
table=document.getElementById(“列表”);
tr=table.getElementsByTagName(“tr”);
origresults=document.getElementById(“结果”);
origsum=document.getElementById(“总和”);
newresults=0;
newsum=0.0;
对于(i=0;i-1){
tr[i].style.display=“”;
newresults++;
newsum+=parseFloat(td);
}否则{
tr[i].style.display=“无”;
}
}
}
origresults.innerHTML=新结果;
origsum.innerHTML=parseFloat(newsum).toFixed(2);
}
它总是说NaN
,但我不明白为什么
newsum=parseFloat(newsum)+parseFloat(td)
也不起作用。我的错误是用td
而不是td.innerHTML
计算。因此函数返回一个NaN
,因为td
显然包含完整的标记,而不仅仅是它的内容
这项工作:
function filter() {
var input, filter, table, tr, origresults, origsum, newresults, newsum, td, i;
input = document.getElementById("input");
filter = input.value.toUpperCase();
table = document.getElementById("list");
tr = table.getElementsByTagName("tr");
origresults = document.getElementById("results");
origsum = document.getElementById("sum");
newresults = 0;
newsum = 0.0;
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
newresults++;
newsum += parseFloat(td.innerHTML);
} else {
tr[i].style.display = "none";
}
}
}
origresults.innerHTML = newresults;
origsum.innerHTML = parseFloat(newsum).toFixed(2);
}
函数过滤器(){
var输入、过滤器、表格、tr、origresults、origsum、newresults、newsum、td、i;
输入=document.getElementById(“输入”);
filter=input.value.toUpperCase();
table=document.getElementById(“列表”);
tr=table.getElementsByTagName(“tr”);
origresults=document.getElementById(“结果”);
origsum=document.getElementById(“总和”);
newresults=0;
newsum=0.0;
对于(i=0;i-1){
tr[i].style.display=“”;
newresults++;
newsum+=parseFloat(td.innerHTML);
}否则{
tr[i].style.display=“无”;
}
}
}
origresults.innerHTML=新结果;
origsum.innerHTML=parseFloat(newsum).toFixed(2);
}