2016-10-28 2 views
0

у меня есть это ниже функции в моем проекте: -функция Javascript собирается в петлю

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); 
      } 
     } 
     } 
    } 
    } 
} 

, когда эта функция вызывается она переходит в бесконечный цикл. Кто-нибудь может помочь мне определить, что я делаю неправильно здесь.

+0

Консоль log table.rows.length; Какой счет? А также table.rows [x] .cells.length whats count? –

+2

'=' является присваиванием, '==' и '===' сравниваются – j08691

+0

Dupe of http://stackoverflow.com/questions/36460244/why-is-this-while-loop-looping-infinitely – j08691

ответ

4

if (j=4) - if (j===4).

= это назначение, которое не является синтаксической ошибкой, так что код работает, но он изменяет значение j на 4, так (при условии, 4 меньше, чем число клеток) ваше условие цикла всегда будет истинным ,

+0

Хмм, это верно. Но может ли это вызвать бесконечный цикл? –

+0

@ Нандан - Конечно, потому что 'j' является счетчиком внутреннего контура. – nnnnnn

+0

Хорошо, Но что я думал, для каждой итерации блок if должен быть выполнен правильно? Поэтому, если значение table.rows [x] .cells.length равно 1000 (просто пример), оно должно отображать предупреждение для 1000 * внешнего цикла. Не так ли? –

Смежные вопросы