javascript - 无法从 json 记录集中打印表中的变量
问题描述
我有一个 Json 记录集,它工作得很好,但是到目前为止,我无法弄清楚如何将 json 数组的值放入表的特定单元格中。
这是我的函数,它查找表单并开始打印值,但前提是表中有输入组件
function process_response(response) {
var frm = document.getElementById("form-ajax");
var i;
console.dir(response); // for debug
for (i in response) {
if (i in frm.elements) {
frm.elements[i].value = response[i];
}
}
}
这是桌子
form id="form-ajax" action="form-ajax.php">
<table class="table">
<thead>
<tr>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" id="name" name="ID" maxlength="12" size="12"></td>
<th scope="row"><input type="submit" value="1" /></th>
<td></td>
这是我想要结果集而不需要放置输入的地方
如果我放置这样的东西。
<td><input type="text" name="1" /></td>
然后javascript工作,它用1读取json名称中的任何内容。但如果我做这样的事情。
<td name="1"></td>
然后什么都没有打印出来。
无论我做什么,除了放置输入类型=“文本”之外,函数都不起作用。
我需要使用 json 中的特定顺序填充表。
解决方案
TD 不是表单的一部分,没有值或名称属性
你可以做
var tds = document.querySelectorAll("td[name]");
for (var i=0;i<tds.length;i++) {
tds[i].innerText=response[tds[i].getAttribute("name")];
}
假设 name 属性与响应键匹配
您也可能不希望有一个提交按钮,而是一个 type="button"
推荐阅读
- mysql - 错误:bean 名称“buildingID”的 BindingResult 和普通目标对象都不能用作请求属性
- javascript - THREEjs 旋转星域
- c - 如何使用 C 中的文件进行此操作?
- java - NVIDIA Visual Profiler 在启动时崩溃
- javascript - 移除数组中的 K 个连续元素后求最小振幅
- node.js - NPM 安装错误
- python - 如何使用循环创建具有多个键值对的嵌套字典的字典?
- node.js - Next JS : 错误: EPERM: operation not allowed, rmdir
- python - 对模拟对象的任何调用都有相同的响应
- python - 有没有办法以标准方式编写 websocket 代码?