javascript - 如何编辑此表响应脚本?

标签 javascript html

我正在使用此脚本自动使表格适应智能手机 View 。 它工作完美!但在某些页面中,我将有多个表,并且该脚本似乎仅适用于第一个表。 看我的例子,调整浏览器窗口的大小:http://elenatest.altervista.org/index.html

这是放入正文的 JS 代码:

<script type="text/javascript">
            var headertext = [],

            headers = document.querySelectorAll("#MyTable th"),
            tablerows = document.querySelectorAll("#MyTable th"),
            tablebody = document.querySelector("#MyTable tbody");

            for(var i = 0; i < headers.length; i++) {
                var current = headers[i];

                headertext.push(current.textContent.replace(/\r?\n|\r/,""));

            } 

            for (var i = 0, row; row = tablebody.rows[i]; i++) {
                for (var j = 0, col; col = row.cells[j]; j++) {
                    col.setAttribute("data-th", headertext[j]);
                } 
            }
</script>

有没有办法让这个脚本针对页面中的所有表运行?

编辑

我用 CLASS 更改了 ID。 JS代码如下:

<script type="text/javascript">
            var headertext = [],

            headers = document.querySelectorAll(".MyTable th"),
            tablerows = document.querySelectorAll(".MyTable th"),
            tablebody = document.querySelector(".MyTable tbody");

            for(var i = 0; i < headers.length; i++) {
                var current = headers[i];

                headertext.push(current.textContent.replace(/\r?\n|\r/,""));

            } 

            for (var i = 0, row; row = tablebody.rows[i]; i++) {
                for (var j = 0, col; col = row.cells[j]; j++) {
                    col.setAttribute("data-th", headertext[j]);
                } 
            }
        </script>

显然在我的 HTML 中:

<table class="MyTable">
 <!--etc etc-->
</table>

最佳答案

首先选择“表”,然后对每个表应用您的函数:

Array.prototype.slice.call(document.querySelectorAll("table")).forEach(function (table) {
  var headertext = [];
  var headers    = table.querySelectorAll("th");
  var tablebody  = table.querySelector("tbody");
  var i, j, row, col;

  for(var i = 0; i < headers.length; i++) {
    headertext.push(headers[i].textContent.replace(/\r?\n|\r/,""));
  }

  for (i = 0; row = tablebody.rows[i]; i++) {
    for (j = 0; col = row.cells[j]; j++) {
      col.setAttribute("data-th", headertext[j]);
    }
  }
});

关于javascript - 如何编辑此表响应脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34090646/

相关文章:

javascript - 单击后如何使按钮更改其位置?

javascript - 如何随机遍历数组一次,然后按顺序重复遍历

javascript - 无法在 JavaScript 中设置最小输入日期

html - 将文本居中放置在左右两个动态跨度之间

php - 用 foreach 增加 DIV 容器

javascript - 参数 'sql' 的预期类型为 utf8,但得到的类型为 'object'

javascript - HTML/CSS 顶部水平导航栏

javascript - 如何在 angularjs 中使用 ajax 调用构建多步骤向导

html - 是列表样式 : initial an official supported value

html - Raspberry Pi Apache2 不使用 HTML 访问用户文件