Javascript 内部循环在第一次出现时停止外部循环

Javascript inner loop stops outer loop on first occurence

本文关键字:循环 外部 内部 第一次 Javascript      更新时间:2023-09-26

我已经嵌套了两个用于循环,如下所示。但是内部循环在第一次出现时会停止外部循环。在执行时,下面的代码只给出了我的第 13 行灰色,预期的行为是看到第 13、14 和 15 行的灰色。

 var rows = document.getElementsByTagName("tr");
 for(var i = 0, max = rows.length;i < max;  i++)
 {
     var cells = rows[i].getElementsByTagName("td");
     if (rows[i].cells[4].innerHTML == "Asset Removed")
      {
        for(var inner = 0, max = rows[inner].cells.length;inner < max;  inner++)
         {
         cells[inner].style.backgroundColor = "grey";
         }
      }
 }

有什么想法吗?

for(var i = 0, max = rows.length;i < max;  i++)
    for(var inner = 0, max = rows[inner].cells.length;inner < max;  inner++)

内部循环中的max变量与外部循环中的变量相同,因此覆盖其值,从而导致i < max结束条件变得不可靠。

您在内部和外部循环中使用相同的变量。 in javascript last assigned value is taken by variable as final value所以改变inner loop max variable to some another name.试试这个。

var rows = document.getElementsByTagName("tr");
 for(var i = 0, max = rows.length;i < max;  i++)
 {
     var cells = rows[i].getElementsByTagName("td");
     if (rows[i].cells[4].innerHTML == "Asset Removed")
      {
        for(var inner = 0, max1 = rows[inner].cells.length;inner < max1;  inner++)
         {
         cells[inner].style.backgroundColor = "grey";
         }
      }
 }

我已将内部循环max变量更改为max1