2014-02-02 2 views
0

у меня есть этот цикл:JavaScript переменная изменяется внутри цикла для

for (var i = 0; i < pictures.length; i++) { 
    var mod = i % 4; 
    alert(mod); // first 
    //get the current row 
    if (mod == 0) 
    { 
     alert(mod); //second 
     tableBody.innerHTML += "<tr>"; 
    } 
    tableBody.innerHTML += "<td><img style='width:146px; height:146px;' src='" + pictures[i].source + "'></td>"; 
    if (mod == 0) 
     tableBody.innerHTML += "</tr>"; 
} 

как пришел мой первый сигнал тревога показывает результат вычисления по математике внутри «мод» переменной, а второй оповещения шоу всегда ноль ??

+0

Потому что ваше второе предупреждение находится в '' if (mod == 0) 'statement ... – Jon

ответ

2

Потому что вы выполняете второе предупреждение тогда и только тогда, когда mod == 0.

+0

Вы правы, но он вводит событие if if, когда его не == 0 –

+0

вы правы мой плохой –

+0

вы приветствуете @AsafNevo :) также я думаю, что лучше использовать '===' здесь вместо '==' (хотя это не имеет большого значения здесь, но это более условно). Пожалуйста, обратите внимание на маркировку как принятый ответ, если вы это видите. tnx – HasanAboShally

0

Второе предупреждение будет отображаться 0, потому что у вас есть внутри, если() заявление, которое проверяет, если мод == 0

0

C'mon ваше второе предупреждение внутри, если() заявление. Он будет выполнен только тогда, когда mod = 0. Если mod = 0, он будет вводить if loop и выполнять там инструкции. Инструкция if содержит предупреждение (mod). Таким образом, он будет печатать значение mod, которое равно нулю. И в вашем первом предупреждении он вычислит значение мод и напечатает все, что есть значение переменной mod (независимо от того, является ли оно нулевым).

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