显示块&&;Javascript无重复问题

显示块&&;Javascript无重复问题,javascript,html,Javascript,Html,我有一个简单的html表格,上面有姓名、月收入和收入。我编写了一个简单的函数,它接受的值,但只接受月收入和收入。如果它们都是0,只需单击一次即可隐藏所有,如果需要,可以再次显示。。 我的代码运行良好。问题是,当我按hide然后按show。。它返回给我一个特定的异常结果,我真的不知道为什么 函数hideZeros(){ 设trs,tds,td1,td2,total,i; trs=document.getElementsByTagName(“tr”); 对于(i=1;i如果(td1+td2==0)

我有一个简单的html
表格
,上面有姓名、月收入和收入。我编写了一个简单的函数,它接受
的值,但只接受月收入和收入。如果它们都是0,只需单击一次即可隐藏所有
,如果需要,可以再次显示
。。 我的代码运行良好。问题是,当我按hide然后按show。。它返回给我一个特定的异常结果
,我真的不知道为什么

函数hideZeros(){
设trs,tds,td1,td2,total,i;
trs=document.getElementsByTagName(“tr”);
对于(i=1;i

名称
月收入
收入
吉姆
0
0
乔
100
50

单击
这是因为默认情况下
tr
元素的样式不是“block”,而是“table row”

您可以将其粘贴为片段吗?是否有重新构建“function scope”的原因在
var
变量中使用
let
?@Andreas,你所说的
重构
是什么意思?我应该使用var而不是let?不,绝对不是!但是变量应该尽可能地“局部”,因此问题是,当它们仅在循环中使用时,为什么要在循环外定义
i
tds
td1
td2
for(let i=0;…)
let tds=trs[i]…
let td1=…
。。。(除了
if
条件,你没有使用
total
进行任何其他操作,因此如果(td1+td2==0){…}
),我会删除它->
如果(td1+td2==0){…}
)谢谢你,昆汀,我在我的函数中更改了它,它工作得很好,我会在8分钟内接受你的回答;-)@德哈特领先了4分钟,那么为什么要回答这个问题呢;)我花了4分钟找出了问题所在。¯_(ツ)_/¯