访问Django for循环中的元素

2024-09-30 04:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django模板,它使用以下代码创建多个按钮,并尝试在单击时删除/隐藏其中一个按钮(在同一个按钮上):

{% for h in helicopters %}
    <div class="btn-group" id="remove-heli">
        <button type="button" class="btn btn-default" onclick='my_func("{{ h }}")'>
            {{ h }}
        </button>
    </div>
{% endfor %}

其中helicopters是一个字符串列表,稍后在脚本块中我有

^{pr2}$

函数运行,但正如您所料,它只在for循环的第一个元素上运行,因为for循环中的所有<\div>元素都具有相同的id

我的问题是:有没有办法指向特定的元素?或者,是否有更好的方法将按钮彼此打印在一起?在


Tags: django代码indiv模板id元素for
2条回答

这实际上可以通过将this传递给myfunc来实现,例如:

onclick='my_func(this);'

this变量包含触发事件的DOM元素,因此它将是单击的任何按钮。在

^{pr2}$

但这当然只在你想让按钮隐藏起来的时候起作用。如果你想让它隐藏其他的东西,那么使用不同的id是一种方法。。。在

如果你仍然对“什么在哪里运行”感到困惑。。只要在浏览器上做一个查看页面源代码,你就会看到你的模板生成了什么。其他一切都在浏览器中进行。浏览器开发工具是你的朋友。。打开它们,这样你就可以看到任何错误等等。如果你想做这些事情,你需要进入使用浏览器的开发部分,否则你会发疯的。在

为div元素设置不同的id如何?在

{% for h in helicopters %}
    <div class="btn-group" id="remove-heli-{{ h }}">
        <button type="button" class="btn btn-default" onclick='my_func("{{ h }}")'>
            {{ h }}
        </button>
    </div>
{% endfor %}

然后,可以使用id访问特定的div元素

^{pr2}$

注意

对多个元素使用相同的ID不是一个好主意。使用唯一id

更新

或者,您可以使用^{}

{% for h in helicopters %}
    <div class="btn-group" id="remove-heli-{{ forloop.counter }}">
        <button type="button" class="btn btn-default" onclick='my_func("{{ h }}")'>
            {{ h }}
        </button>
    </div>
{% endfor %}

相关问题 更多 >

    热门问题