javascript - 带有动态 Jinja HTML 的动态 querySelector
问题描述
我有根据字典中的值动态呈现的表单。根据键值给它们一个 ID。它们最初都是隐藏的。
<div id="subforms" style="display: none" >
{%for k, v in options.items() %}
<h3>{{k}}:</h3>
<form id= "{{k}}">
{% for option in v %}
<label>{{option}}</label>
<input type="checkbox" name="{{option}}_enabled">
{% endfor %}
</form>
{% endfor %}
</div>
我现在使用这些相同的键创建一个输入列表:
<form action="/action_page.php">
<input list="tables" id="tablelist" >
<datalist id="tables">
{% for key in options.keys() %}
<option value={{key}}>
{% endfor %}
</datalist>
</form>
最后,我使用 Javascript 来监听 tablelist 元素并根据 inputlist 的值选择一个表单。
const tables = document.getElementById("tablelist")
const subform_block = document.getElementById("subform_display")
const forms = document.getElementById("subforms")
tables.oninput = () => {
let form =
forms.querySelector('form[id="${tables.value}"]');
if(form){
subform_block.innerHTML = form.outerHTML;
}
else {
subform_block.innerHTML = "not found";
}
}
查询选择器不工作。我确认 HTML 已正确呈现且 ID 一致,但我的 querySelector 无法找到任何表单。怎么了?
解决方案
改变:
let form = forms.querySelector('form[id="${tables.value}"]');
到:
document.querySelector('form[id=' + tables.value + ']');
它有效。不知道为什么 ${tables.value} 没有被正确识别
推荐阅读
- phoenix-framework - 用户未登录时出错:函数 nil.id/0 未定义
- objective-c - 通过情节提要设置图像时,是否可以将 NSButton 用作收音机?
- excel - 从 .txt 文件导入数据宏真的很慢
- powershell - 重命名计算机并添加加入域 powershell 脚本
- python-3.7 - 如何使用错误的 Python 输入
- android - 自定义键盘不应用颜色更改的问题
- sql - 如何跨多个数据库查找非空的特定表(大多数/全部通用)
- mysql - PHPMyAdmin Designer 不显示所有表格
- angular - 为什么我不能从本地 Angular 应用程序发布到在 docker 上运行的 RestHeart 本地测试 api?
- tsql - 将具有键和注释字段的表转换为列字段中每个单词的键和行