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

标签 javascript

我嵌套了两个 for 循环,如下所示。但是内部循环在第一次出现时停止了外部循环。在执行时,下面的代码只给出了灰色的第 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结束条件变得不可靠。

关于Javascript 内循环在第一次出现时停止外循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279213/

相关文章:

javascript - 从 URL 预览图像 - 就像 Facebook

javascript - Meteor.setTimeout() 保存当前的 'this' 对象而不是 future 的对象

javascript - 使用 jQuery 加载完成后缩放 div 中的图像

javascript - 交换两个参数值的更好方法是什么?

javascript - Youtube 对象 #<S> 没有方法 'playVideo'

javascript - React Carousel renderArrow 常量未定义

php - CakePHP GET 请求仅在部分时间失败

javascript - 在 Jade 中渲染单个 block

javascript - 将 XML 数据转换为 Json 格式 AngularJS

javascript - Highcharts 中的动态图带