我有一个 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 %}
where helicopters
是一个字符串列表,稍后在脚本块中我有
function my_func(h) {
document.getElementById('remove-heli').style.visibility = 'hidden';
}
该函数运行,但正如您所期望的,它仅在我的 for 循环的第一个元素上运行,因为所有<\div>
for循环中的元素具有相同的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 元素。
function my_func(h) {
document.getElementById('remove-heli-' + h).style.visibility = 'hidden';
}
NOTE
对多个元素使用相同的 ID 并不是一个好主意。使用唯一的 ID。
UPDATE
或者,您可以使用forloop.counter https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#for:
{% 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 %}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)