我想为第一行和第一列单元格分配一个字母和一个数字(如excel表),行(cell.cellIndex == 0),没有问题它工作正常,但对于每一列( row.rowIndex == 0&& cell.cellIndex!= 0)它仅适用于浏览器IE和FF,在Chrome中它不起作用。它得到一个rowIndex = -1
for (var i = 0; i <= inpRow.value; i++) {
array[i] = new Array();
arrayFunc[i] = new Array();
row = document.createElement('tr')
table.appendChild(row);
for (var j = 0; j <= inpCol.value; j++) {
cell = document.createElement('td');
row.appendChild(cell);
cell.setAttribute('id', (i) + "." + (j));
if (row.rowIndex == 0 && cell.cellIndex != 0) { // row.rowIndex in chrome gets -1
if ((j-1) >= 26) { // j-1 to asign letter from the second cell
var tmp = (j-1) / 26;
for (var f = 0; f < parseInt(tmp, 10) ; f++) {
for (var k = 0; k <= (j-1) - (26 * parseInt(tmp, 10)) ; k++) {
cell.innerHTML = '<b>' + String.fromCharCode(f + 65) + String.fromCharCode(k + 65) + '</b>';
}
}
} else {
cell.innerHTML = '<b>' + String.fromCharCode(j + 64) + '</b>';
}
cell.style.backgroundColor = 'gray';
} else if (cell.cellIndex == 0) {
cell.innerHTML = '<b>' + i + '</b>';
cell.style.backgroundColor = 'gray';
}
}
我有替代变体使用不是行和单元索引,但使用id:
cell.id.substr(0, 1) == '0' && cell.id != '0.0'
它在所有浏览器中都可以正常工作,但我想使用单元格和行索引:
row.rowIndex == 0 && cell.cellIndex != 0
答案 0 :(得分:0)
Chrome和Safari似乎都使用“document.createElement('tr');”为您附加到表格的每一行指定了-1的行索引。“做法。然后没有必要按索引搜索或比较行,因为每行只是-1。
而不是在你开始第二次循环之前的以下两行:
row = document.createElement('tr')
table.appendChild(row);
使用:
row = table.insertRow(-1);
这应该完成相同的工作,但Chrome和Safari现在将为每一行插入正确的索引。
答案 1 :(得分:0)