首页 > 解决方案 > 无法从 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 中的特定顺序填充表。

标签: javascriptjqueryhtmljson

解决方案


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"


推荐阅读