Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中随while循环和递增_Javascript - Fatal编程技术网

javascript中随while循环和递增

javascript中随while循环和递增,javascript,Javascript,需要一些帮助。Javascript不是我的强项。我试图循环遍历以下元素ID,每个迭代本身递增1。例如,c4_r1_cell_1随着每个循环的进行将变成c4_r2_cell_2、c4_r3_cell_3等等。在进入下一个循环之前,我需要在每次迭代中以相同的增量数执行6次。在您看到的地方,+loop_count+每次都需要是相同的数字,然后才能进入下一个循环运行,直到到达最后一个循环为止 我不需要的是它增加我的每个+loop_count+,就像它们是单独的迭代一样,它增加它们1,2,3,4,5,6。

需要一些帮助。Javascript不是我的强项。我试图循环遍历以下元素ID,每个迭代本身递增1。例如,c4_r1_cell_1随着每个循环的进行将变成c4_r2_cell_2、c4_r3_cell_3等等。在进入下一个循环之前,我需要在每次迭代中以相同的增量数执行6次。在您看到的地方,+loop_count+每次都需要是相同的数字,然后才能进入下一个循环运行,直到到达最后一个循环为止

我不需要的是它增加我的每个+loop_count+,就像它们是单独的迭代一样,它增加它们1,2,3,4,5,6。我需要它们是1,1,1,1,1,1,然后是下一个循环迭代2,2,2,2,2等等

正在生成的HTML:

<td><input type="text" id="c1_r<?php echo $i; ?>_cell_2" name="c1_r<?php echo $i; ?>_cell_2" value="<?php echo $row2['c1_r'.$i.'_cell_2']; ?>" /></td>
<td><input type="text" id="c2_r<?php echo $i; ?>_cell_3" name="c2_r<?php echo $i; ?>_cell_3" value="<?php echo $row2['c2_r'.$i.'_cell_3']; ?>" /></td>
<td><input type="text" id="c3_r<?php echo $i; ?>_cell_4" name="c3_r<?php echo $i; ?>_cell_4" value="<?php echo $row2['c3_r'.$i.'_cell_4']; ?>" /></td>
<td><input type="text" id="c4_r<?php echo $i; ?>_cell_5" name="c4_r<?php echo $i; ?>_cell_5" value="<?php echo $row2['c4_r'.$i.'_cell_5']; ?>" /></td>
<td><input type="text" id="c5_r<?php echo $i; ?>_cell_6" name="c5_r<?php echo $i; ?>_cell_6" value="<?php echo $row2['c5_r'.$i.'_cell_6']; ?>" /></td>
这是我现在没有用的东西:

var loop_count = 1;
while (loop_count < 50) {
document.getElementById("c4_r" + loop_count + "_cell_" + loop_count + "") = 
document.getElementById("c5_r" + loop_count + "_cell_" + loop_count + "");
document.getElementById("c5_r" + loop_count + "_cell_" + loop_count + "") = '';
loop_count++;
}

这样试试。这对你有帮助

var loop_count = 1;
while (loop_count < 50) {

    $('#c4_r' + loop_count + '_cell_' + loop_count + '').val($('#c5_r' + loop_count + '_cell_' + loop_count + '').val());
    $('#c5_r' + loop_count + '_cell_' + loop_count + '').val('');

    loop_count++;
}

您需要获取并设置所选DOM元素的innerHTML。目前,您正试图选择整个DOM元素并将其分配给另一个DOM元素—这是您无法做到的。但是,您可以获取这些元素的innerHTML值并分配它们

var loop_count = 1;
while (loop_count < 50) {
document.getElementById("c4_r" + loop_count + "_cell_" + loop_count).value = document.getElementById("c5_r" + loop_count + "_cell_" + loop_count) ? document.getElementById("c5_r" + loop_count + "_cell_" + loop_count).value : '';
document.getElementById("c5_r" + loop_count + "_cell_" + loop_count).value = '';
loop_count++;
}
如果需要检查DOM元素是否存在,可以使用简单的If语句:

var loop_count = 1;
while (loop_count < 50) {
  if (document.getElementById("c4_r" + loop_count + "_cell_" + loop_count)) {
  document.getElementById("c4_r" + loop_count + "_cell_" + loop_count).value = document.getElementById("c5_r" + loop_count + "_cell_" + loop_count) ? document.getElementById("c5_r" + loop_count + "_cell_" + loop_count).value : '';
}
  document.getElementById("c5_r" + loop_count + "_cell_" + loop_count) ? document.getElementById("c5_r" + loop_count + "_cell_" + loop_count).value = '' : undefined;
  loop_count++;
}

我做了一些修改以提供一个上下文,希望底层逻辑应该是您想要的:下面是一段普通Javascript:

var loop_count = 1;  //*variable initialization*
while(loop_count<50){    //*iterator and the condition*   
 var text=document.getElementById("c4_r" + loop_count + "_cell_" + loop_count + "").innerHTML;   // *assigning to a a new variable the content of the element matching the ID*
loop_count++; }     //variable increment to meet stop iteration when at 50 and closure of the while.

你的代码应该按照你解释的做。你不能分配给函数调用。document.getElementById…=…;无效。它在控制台中出现以下错误。未捕获引用错误:赋值中的左侧无效。请显示您的html好吗?代码在此处换行。它实际做的是将值从1个输入复制到另一个输入,因此在那一行上有=。谢谢@neeraj这种方法通过在jQuery中混合来工作。@BeKustom-如果你不想在jQuery中混合,请参阅我的答案。我尝试过这种方法,但是我在一些输入中有空值,它将循环,并且它通过一个错误无法读取空值的属性'innerHTML',有办法解决这个问题吗?@BeKustom-我已经更新了我的答案,在第一行的末尾包含了`| `,这应该可以解决这个问题。我尝试了更新后的代码,它仍然会给出相同的错误。如果可能的话,我希望使用javascript解决方案,而不是在jQuery中混合使用。@BeKustom您总是有一个具有该确切id的dom元素吗?这个错误似乎表明你一直都没有这个id。别担心@BeKustom,它仍然有点冗长,但你可以将你的选择分配给变量来清理它。这是我在逻辑上寻找的,但是它会考虑在它迭代的一些输入中可能出现的空值吗?如果它看到空值,您希望它发生什么?我会添加一个'iffoo{code}'来定义这个动作。