- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 colspans 和 rowspans 的表格,就像这个 5x3 表格:
<table id="test">
<tr>
<td colspan="2">1</td><td>2</td><td rowspan="2">3</td><td>4</td>
</tr>
<tr>
<td>5</td><td colspan="2">6</td><td>7</td>
</tr>
<tr>
<td>8</td><td>9</td><td>10</td><td>11</td><td>12</td>
</tr>
</table>
我想在 Javascript 中创建二维数组,其中包含给定坐标处的单元格 DOM 元素。
对于给定的示例,它如下(为简单起见,数字表示具有相应内容的 DOM 单元格元素):
[[1, 1, 2, 3, 4], [5, 6, 6, 3, 7], [8, 9, 10, 11, 12]]
你看,它就像 Javascript 属性 table.rows
,但是带有 colspan/rowspan 的单元格出现了很多次。如果仅允许 colspan,则创建这样的数组并不困难 - 只需遍历 table.rows
并向数组单元格推送与 colspan 一样多的次数。然而,当还允许 rowspan 时,这就变得棘手了。
这是我的尝试:
var tableEl = document.getElementById('test');
var cells2D = [];
var rows = tableEl.rows;
var x = 0, y = 0;
for (var r = 0; r < rows.length; ++r) {
var cells = rows[r].cells;
x = 0;
for (var c = 0; c < cells.length; ++c) {
var cell = cells[c];
var colSpan = x + (cell.colSpan || 1);
var rowSpan = y + (cell.rowSpan || 1);
for (var x2 = x; x2 < colSpan; ++x2) {
for (var y2 = y; y2 < rowSpan; ++y2) {
if (!cells2D[y2]) cells2D[y2] = [];
cells2D[y2][x2] = cell;
}
++x;
}
}
++y;
}
它不适用于示例,但如果我删除最后一列,它就会起作用。
最佳答案
我不确定这是否正确,但是我想出了以下代码,它找到了示例表的正确数组。
var tableEl = document.getElementById('test');
var cells2D = [];
var rows = tableEl.rows;
var rowsLength = rows.length;
for (var r = 0; r < rowsLength; ++r) {
cells2D[r] = [];
}
for (var r = 0; r < rowsLength; ++r) {
var cells = rows[r].cells;
var x = 0;
for (var c = 0, cellsLength = cells.length; c < cellsLength; ++c) {
var cell = cells[c];
while (cells2D[r][x]) {
++x;
}
var x3 = x + (cell.colSpan || 1);
var y3 = r + (cell.rowSpan || 1);
for (var y2 = r; y2 < y3; ++y2) {
for (var x2 = x; x2 < x3; ++x2) {
cells2D[y2][x2] = cell;
}
}
x = x3;
}
}
关于考虑到colspan和rowspan的Javascript获取表格单元格二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36061508/
根据我对 JavaScript 的理解,任何属性都可以使用 element.attribute = newValue 设置。因此,我尝试使用 element.colspan = 2 设置多个表格单元格
地点ID: 3 我想使用 JQuery 将第一个 TR 中未包含在完整页面中的第一个 Colspan="2"替换为 Colspan="4"。 谢谢。 最诚挚的问候,女士 最佳答案 这个 jQuery
您好,我有一个表,其中一行中的某些列与 colspan="2" 属性相关联。 此刻它看起来像这样: 我希望一行中连接的列的文本居中,但只有连接列中的文本 该行的表格数据(无限制)有如下代码 u
我是否可以检查现有表中的列数并将其分配给该表 colspan 的顶部? My code document.write('') document.write(' HEAD GRID ') for(i
我有一个表格,其中的单元格具有相同的值。我正在尝试使用 colspan 将它们合并在一起,但是为 colspan 设置属性没有任何效果。 https://jsfiddle.net/afn4f1q9/4
我已经使用了这个 .js 文件和以下方法。 https://code.jquery.com/jquery-3.3.1.js https://cdn.datatables.net/1.10.19/js/
我有一个响应式表格(在可变 div 宽度内设置为 100% 宽度),我试图在其中“重置”colspan,以便下一个表格行不会继承固定宽度 tds. 在我的示例中,数字 td(1 到 7)的固定宽度为
我的问题是,当我单击“span cell 1”按钮时,colspan 已正确完成,但头部 td 被扩展,并且随着表大小的增加,表布局受到干扰。它不能管理剩余的列吗? 如果我单击跨度单元格 1 按钮,则
这是第一个问题,所以请原谅我的任何错误。 我正在使用 JQuery Datatables 插件,并且必须向表中添加两行带有 colspan 的列标题。在 HTML 中硬编码没有问题,但现在我在表初始化
我使用的是响应式数据表并且工作正常,但问题出在 colspan 上。 当我使用带有 colspan 属性的 td 标签时,页面使用此链接引发错误 datatables warning table id
我正在使用以下 HTML 代码制作日历: Mon Tue Wed T
我有一张带有 colspan 的表,但表现不佳。 请比较以下 fiddle : http://jsfiddle.net/lucaswiener/WBdc8/ http://jsfiddle.net/l
jsfiddle 链接:http://jsfiddle.net/KMzjp/ 所以我试图根据表头 th 元素突出显示表列(有三个 th 元素,所以应该有三列,中间一列突出显示). 它在没有 colsp
我有一个包含很多行和列的表格。 现在我想像这样将 td "E8"分成两列: 什么是最好的解决方案? 最佳答案 单向: 您可以在同一行的所有其他单元格上使用 rowspan="2" 例子:
请看下面的html: Event Name City Date Price
我正在尝试使用 colspan 使图像与表格中的右侧对齐,并使带有文本的行在左侧对齐。当图像在左侧时,此方法通常有效,但现在我希望它在右侧,但它不起作用。请记住这是针对 outlook 电子邮件的,因
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-top
帮助!我在这里拔头发。我正在尝试 a) 在此表的第一行和第三行中执行 colspan,但它似乎不起作用。我希望两行都跨越三列,并且 b) 我无法显示图像并且我已经在网上进行了广泛的搜索并且已经解决了我
我正在创建一个应用程序,它允许用户通过添加和删除列和行、设置列宽和单元格列跨度以及将元素插入表格单元格来操作表格结构。在测试时,我遇到了一个场景,其中 Firefox 4 和 Internet Exp
表名:主题 我的预期输出 我的代码 setActiveSheetIndex(0); $headers = array('School Name'); $objPHPExcel->get
我是一名优秀的程序员,十分优秀!