javascript - 如何从 AJAX 响应更新大表?

标签 javascript ruby-on-rails ajax html-table

如何使用 AJAX 更新以下大型表格(10 行 X 30 列)的每个单元格?

<table>
  <tr>
    <td>puts @table[0][0]</td>
    <td>puts @table[0][1]</td>
    ... 27 columns go here
    <td>puts @table[0][29]</td>
  </tr>
  ... 8 rows go here
  <tr>
    <td>puts @table[9][0]</td>
    <td>puts @table[9][1]</td>
    ... 27 columns go here
    <td>puts @table[9][29]</td>
  </tr>
</table>

我能够通过给它一个特定的 ID 来更新第 0 行和第 0 列的单元格,如下所示

    <td id="r0c0">puts @table[0][0]</td>

并使用以下 JavaScript,运行良好

document.getElementById("r0c0").innerHTML = '<%= @new_r0c0_value %>'

但由于表格非常大(300 个单元格),我正在寻找一种想法,如何从值数组中更新 300 个单元格,而不用特定 id 标识每个表格的单元格。

有人知道如何在 AJAX 响应中传递数组以及如何使用该 AJAX 响应更新这个大表吗?

最佳答案

如果你在表格标签本身上放置一个id,你可以将表格中的所有单元格放入一个数组中,如下所示:

document.getElementById('myTable').getElementsByTagName('td');

然后,您将获得表中所有 td 元素的数组,您可以循环遍历并更新该数组。

在某些浏览器中,删除整个表格并使用其中的新数据构建一个新表格可能比单独更改所有单元格效果更好。问题是,由于表格可以具有动态布局,因此每次更改单元格时浏览器可能无法非常有效地重新排列表格。

关于javascript - 如何从 AJAX 响应更新大表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9476594/

相关文章:

javascript - 如何在多部分表单上使用 AJAX、Javascript 和 PHP?

javascript - AJAX 完成后无法调用函数

javascript - AngularJS : multiple asynchronous AJAX calls

ruby-on-rails - rails : best practice to load a helper in controller

ruby-on-rails - 计算 Ruby on Rails 中列值的平均值

javascript - 如何编写一个 javascript 函数来执行 ajax 请求而不重复以避免代码异味而不使用 JQuery 库

javascript - 绑定(bind)多维knockoutjs observableArray

javascript - 如何使用jQuery检查选择框中的任何选项是否等于另一个选择框中的任何选项

javascript - react 导航6 : Override parent navigator's header configuration from an screen inside child navigator

ruby-on-rails - Rails_admin,如何为自定义操作创建表单?