【问题标题】:Javascript function going into a loopJavascript函数进入循环
【发布时间】:2016-10-29 06:27:39
【问题描述】:

我的项目中有以下功能:-

function RowSelection() {
  var table = document.getElementById("tbl_Audit");
  if (table != null) {
    for (var x = 0; x < table.rows.length; x++) {
      for (var j = 0; j < table.rows[x].cells.length; j++) {
        if (j = 4) {
          alert("condition passed " + j)
          table.rows[x].cells[j].onclick = function() {
            tableText(this);
          }
        }
      }
    }
  }
}

当这个函数被触发时,它会进入一个永无止境的循环。谁能帮我找出我在这里做错了什么。

【问题讨论】:

标签: javascript


【解决方案1】:

if (j=4) 更改为if (j===4)

= 是一个赋值,这不是语法错误,因此代码运行,但它将j 的值更改为4,因此(假设 4 小于单元数)你的循环条件永远为真。

【讨论】:

  • 嗯,没错。但这会导致永无止境的循环吗?
  • @Nandan - 当然,因为j 是内部循环的计数器。
  • 好的,但我想的是,对于每次迭代,if 块都应该执行,对吗?因此,如果 table.rows[x].cells.length 值为 1000(只是示例),它应该显示 1000*outer 循环计数的警报。不是吗?
  • @Nandan - 在内部循环的每次迭代结束时,j 将增加 forj++,但随后 if (j=4) 将更改 j4。所以每次(在第一次之后)评估内部循环条件j 将是5。如果小于table.rows[x].cells.length,则内部循环条件将始终为真。
猜你喜欢
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 1970-01-01
  • 2016-02-04
相关资源
最近更新 更多