如何在div的id中传递javascript变量(进入twig循环)?

时间:2017-12-02 11:31:35

标签: javascript html twig

如何在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>

1 个答案:

答案 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