首页 > 解决方案 > 如何编写脚本将许多值粘贴到 HTML 中的许多部分

问题描述

示例entry数据看起来像

{
 acc : ["102 Cash on hand", "101 Cash at zummon Bank", "103 Cash at Wonder Bank", "300 Capital stock"], 
 amt : [800000.0, 100000.0, 100000.0, -1000000.0]
}

HTML 脚本部分。我想粘贴each entry dataeach part in HTML帮助请!

function setEntry(entry) {
      var lenEntry = entry.acc.length
      for (var r=0; r < lenEntry; r++) {
        document.getElementById("entryAccount")[r].value = entry.acc[r]
        document.getElementById("entryAmount")[r].value = entry.amt[r]
      }
}

HTML 部分

<div style="display:flex">
  <div>
    <label for="entryAccount">Account</label>
    <input id="entryAccount" list="Account_list">
  </div>
  <div>
    <label for="entryAmount">Amount</label>
    <input id="entryAmount" type="number">
  </div>
</div>
<div style="display:flex">
  <div>
    <label for="entryAccount">Account</label>
    <input id="entryAccount" list="Account_list">
  </div>
  <div>
    <label for="entryAmount">Amount</label>
    <input id="entryAmount" type="number">
  </div>
</div>
...

先感谢您

标签: htmlgoogle-apps-script

解决方案


您只能拥有一个具有 1 个 id 的元素。您不能有多个具有相同 ID 的元素。html 中的 id 是唯一的 - 感谢TheMaster的信息

因此,完成这项工作的一种方法是getElementsByClassName接受许多值

对于 HTML 脚本部分

document.getElementById("entryAccount")[r].value = entry.acc[r]
document.getElementById("entryAmount")[r].value = entry.amt[r]

编辑为

document.getElementsByClassName("entryAccount")[r].value = entry.acc[r]
document.getElementsByClassName("entryAmount")[r].value = entry.amt[r]

对于 HTML 部分

    <input id="entryAccount" list="Account_list">
    <input id="entryAmount" type="number">
    ...

添加更多类getElement

    <input class="entryAccount" id="entryAccount" list="Account_list">
    <input class="entryAmount" id="entryAmount" type="number">
    ...

或者你可以摆脱那些id="...",如果你不介意,它仍然以同样的方式工作label for="..."


推荐阅读