javascript中随while循环和递增
需要一些帮助。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: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。
<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}'来定义这个动作。