我正在尝试在循环中使用getElementById()作为我想要得到的每个div的id顺序如total_comments1,total_comments2,total_comments3,..等等。这个id由输出使用php分配。
这是我显示我的div的代码:
<?php
$i=0;
while( $row = mysqli_fetch_assoc($ret) ):
$i++;
?>
<tr>
<td class="col3 col">
<div id="<?php echo "total_comments".$i ?>"></div>
</td>
</tr>
这是我的javascript代码:
<script>
for(var i in (result.response)) {
var a=document.getElementById("total_comments" + i );
a.innerHTML = result.response[i].posts;
}
</script>
当我在document.getElementBy ID中仅使用“total_posts”时,它不会给出任何错误。但是当我使用“total_posts”+ i 时,它会在下一行给出错误。 无法设置null
的属性'innerHTML'答案 0 :(得分:5)
数组具有0
的起始索引。
在您的情况下,您在分配前递增$i
。
这会导致您的ID从1
而不是0
分配后你应该增加它。
更正后的代码:
<?php
$i=0;
while ($row = mysqli_fetch_assoc($ret)):
?>
<tr>
<td class="col3 col">
<div id="<?php echo "total_comments".$i ?>"></div>
</td>
</tr>
<?php
$i++;
endwhile;
?>
答案 1 :(得分:2)
问题在于你的php周期,尝试改变它:
<?php
$i=0;
while($row = mysqli_fetch_assoc($ret) {
echo '<tr><td class="col3 col">'
.'<div id="total_comments'.$i.'"></div>'
.'</td></tr>';
$i++;
}
?>