javascript - 如何在具有多个表的树中找到 <td> 的最大数量-JS

标签 javascript

我的 dOM 树中有多个表,我想计算每个表中的单元格数量。

代码:

function tree() {
    var table = document.getElementsByTagName('table');
    for (var p = 0, tr; tr= table[p]; p++) {
      for (var i =0, row; row = tr.rows[i]; i++) {
         console.log(row.cells.length)
      }
    }
}

console.log(树())

html:

<table>
   <tr>
            <td>First</td>
            <td>row</td>
        </tr>
        <tr>
            <td>and</td>
            <td>second</td>
        </tr>
</table>
<table>
   <tr>
            <td>First</td>
            <td>row</td>
        </tr>
</table>

第一个有 4 个单元格,第二个有 2 个单元格,我想打印出表格中计数最大的单元格。因此,o/p 将是:

4

我上面的js代码,返回表格中所有单元格的总长度。如何遍历树中的表并找到最大的单元格数?

谢谢!

最佳答案

使用querySelectorAll()来简化这个。

下面的代码将输出4,如您的OP中所示。这是一个简单的修改,以获得具有最多单元格的表格,我怀疑这就是你的意思(不清楚)。

// Get your list of all tables in the document.
const tables = document.querySelectorAll('table');

// Map list of tables to list of number of <td> elements.
const lengths = 
  Array.from(tables)
    .map(table => table.querySelectorAll('td').length)

// Get the max of the list of lengths and log to console.
const max = Math.max(...lengths);
console.log(max);
<table>
  <tr>
    <td>First</td>
    <td>row</td>
   </tr>
   <tr>
     <td>and</td>
     <td>second</td>
  </tr>
</table>
<table>
  <tr>
    <td>First</td>
    <td>row</td>
  </tr>
</table>

关于javascript - 如何在具有多个表的树中找到 <td> 的最大数量-JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56027365/

相关文章:

javascript - 从 Controller 调用 javascript Ruby on Rails 3.2.9

javascript - Angular 2.0 和 TypeScript - 从多维数组对象填充 <select> 选项

javascript - 最大回文算法-JS

javascript - 用随机图像填充表格

javascript - 在 JQGrid 中创建链接

javascript - 在运行时打包客户端脚本并支持 Common.js

javascript - angularjs - 带搜索参数的路由

javascript - 如何在不重新加载或重定向页面的情况下使用 html 中的 php 将文本框的值保存到 .txt 文件?

javascript - Node : Using fs. readFile 读取错误 : EISDIR: illegal operation on a directory,

javascript - 在页面加载后通过在 head 中附加脚本来加载 Google Analytics 并不总是有效