用Javascript将data-title from headline添加到每个td(二维数组中的for循环)
Add data-title from headline to every td with Javascript (for loop in two dimensional array)
我有一个html表,我想从标题的单元格内容作为数据标题添加到响应式html表的每个td。
问题是,当我想为body单元格设置属性时,我得到了消息:"array[i] is undefined"。
我的Javascript代码是这样的:
function myFunction() {
var head = document.querySelector("table > thead");
var body = document.querySelector("table > tbody");
var columncount = body.rows[0].cells.length;
var headItems = head.rows[0].cells;
var headRows = head.rows;
var headCells = [];
var array = []
if (headItems.length == columncount) {
for (var i = 0; i < headRows.length; i++) {
var columns = [];
headCells = headRows[i].cells;
for (var m = 0; m < headCells.length; m++) {
columns[m] = headCells[m].innerHTML;
}
array[i] = columns;
}
}
var bodyRows = body.rows;
for (j = 0; j < bodyRows.length; j++) {
var bodyCells = bodyRows[j].cells;
for (k = 0; k < bodyCells.length; k++) {
bodyCells[k].setAttribute("data-title", array[i][m]); // NOTE array[i][m] here
}
}
}
如果你在你的项目中使用jQuery,这可能会有帮助:
// Add data-title to every <td>
$( "table" ).each( function( index, tableID ) {
$( tableID ).find( "thead tr th" ).each( function( index ) {
index += 1;
$( tableID ).find( "tbody tr td:nth-child(" + index + ")" ).attr( "data-title", $(this).text() );
});
});
仅适用于包含<thead>
和<tbody>
标签的表
首先,在选择变量时,不要使用javascript关键字名称,例如,不要使用array
,而要使用_array
或arr
或其他变量
我认为你需要添加一个内容到这个array
。试着给array
添加一些东西,因为如果你做array[i]
, array
是空的,没有i
索引。
试试这个:
_array.push(some_value);
然后,您可以这样做,例如_array[0]
相关文章:
- 作为一个二维数组,从ajax接收
- 创建P5.js二维数组
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- inArray,indexOf在二维数组中
- 比较二维数组js
- 从二维数组中获取img src和img维度,并在body中显示
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- 如何将以下字符串拆分为二维数组:
- 更新Aurelia中二维数组的视图
- 如何在JavaScript中拆分二维数组
- 在二维数组中搜索比嵌套循环更有效的方法
- 无法访问javascript中二维数组中的第二个字段
- 将一个二维数组传递给javascript中的函数
- 无法在 Javascript 中访问我的二维数组
- 将二维数组转换为单个数组
- 将一个数组与javascript中的二维数组进行比较
- JavaScript二维数组
- 如何从二维数组中删除重复项
- javascript中递归复制二维数组的算法
- 用Javascript将data-title from headline添加到每个td(二维数组中的for循环)