javascript - 通过 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>
解决方案
您的格式略有偏差。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(...)
) 中选择元素。
推荐阅读
- python - Python多处理:有效地只保存最好的运行
- apache-kafka - kafkaRDD next() 慢
- python - Python 中的 IMDB 网页抓取
- python - Django 查询所有记录并注释给定日期和布尔状态之间的天数,直到日期布尔值更改
- html - 如何使右侧的 col-md-3 在 html bootstrap 4 中对齐
- javascript - 是否可以返回带有对象属性名称的数组?它被连线要求打印没有''的字符串
- python - 不能使用来自opencv的SIFT算法
- spring-boot - 无法在容器化 Docker 应用程序中读取用户上传的文件
- numpy - 扩展尺寸
- c# - 来自字节的字符串中的字节不等于原始字节