首页 > 解决方案 > 通过 PHP 生成唯一 id 以在 document.getelementID 中使用?

问题描述

我正在尝试使用 php 通过 for 循环遍历数组。我想在 for 循环中为每个项目创建对象,当单击对象时,它们会变成不同的颜色。为此,我使用了需要唯一 ID 的 document.getElementId()。我尝试按照以下方式生成这些唯一 ID,但似乎当我单击对象时,它并没有改变颜色,因此 ID 无法正常工作。下面是代码:

<?php $i = 0;?>
<button class = "answerchoice" id="c1"+<?php echo $i; ?>><?php echo $data['C1']; ?></button>
<script>
  document.getElementById("c1"+[<?php echo $i; ?>]).onclick = function() {
    document.getElementById("c1"+[<?php echo $i; ?>]).style.backgroundColor = "#abebbd";}
</script>

标签: javascriptphphtml

解决方案


您的格式略有偏差。echo $i需要在 id 属性的引号内。加号也是无关紧要的(您不是在这里连接,该值实际上是在输出。此外,在 PHP 中,连接是使用“.”运算符执行的)。

<button class = "answerchoice" id="c1<?php echo $i; ?>"><?php echo $data['C1']; ?></button>

您还可以考虑更简洁的替代回显语法。

<button class = "answerchoice" id="c1<?= $i ?>"><?php echo $data['C1']; ?></button>

此外,您可以受益于将 id 分配给局部变量,而不是在三个地方重建它。这同样适用于在 JavaScript( var button=document.getElementById(...)) 中选择元素。


推荐阅读