如何在div的id中传递javascript变量(进入twig循环)?
这是我尝试过的,没有成功:
<script type="text/javascript">
id = 0;
</script>
{% for element in parent.elements %}
<div id="mydiv">
<script>
document.getElementById('mydiv').id('mydiv'+id);
id++;
</script>
</div>
{% endfor %}
期望的结果(如果是3个元素):
<div id="mydiv0">
</div>
<div id="mydiv1">
</div>
<div id="mydiv2">
</div>
答案 0 :(得分:3)
当php试图创建一个然后发送到客户端的html页面时,在服务器中执行twig代码。然后,客户端(浏览器)执行javascript。因此,当javascript运行时,您已经创建了三个div,所有div都是id'mydiv'。由于HTML不能包含多个具有相同ID的元素,因此该HTML无效。
你想要的是访问twig for循环中的索引。您可以将其与loop.index变量一起使用。
{% for element in parent.elements %}
<div id="mydiv{{loop.index}}">
</div>
{% endfor %}
如果您的ID以'mydiv0'开头很重要,您也可以使用loop.index0
。