Excel таблица на Javascript'е
Добрый день.
Пытаюсь написать что-то вроде примитивной эксель таблицы на javascript. Столкнулся с проблемой назначения уникальных ID каждой ячейке (или элементов в ячейке, напр. для input)
var table = document.getElementById("excelTable");
var input = table.getElementsByTagName("input");
function createCell(cell, r, c) { // r - отвечает за цифру столбца, c - за цифру ряда
cell.innerHTML = "<input id='td" + r + c + "' type='text' onfocus='doEdit(this.id);' onblur='doUpdate(this.value, this.id);' />";
}
function addRowId() {
// код для определения индекса ячейки в столбце
}
function addColId() {
// код для определения индекса ячейки в ряду
}
function appendRow(n) { // добавляет столбец
for (; n > 0; n--) {
var row = table.insertRow(table.rows.length);
for (var i = 0; i < table.rows[0].cells.length; i++) {
createCell(row.insertCell(i), addRowId(), addColId());
}
}
}
function appendColumn(n) { // добавляет ряд
for (; n > 0; n--) {
for (var i = 0; i < table.rows.length; i++) {
createCell(table.rows[i].insertCell(table.rows[i].cells.length), addRowId(), addColId());
}
}
}
Мне надо чтобы при создании ячейки ей (точнее не совсем ей а input'у) назначался ID в виде двух цифр, первая цифра, это столбец, в котором находится ячейка, вторая цифра, это ряд в котором находится ячейча... например 23 (второй столбец, третий ряд) Мне необходимо задавать эти ID, чтобы потом можно было обращаться к этим инпутам в ячейках. Если это возможно реализовать как-то по-другому, буду очень рад услышать любую идею. Заранее благодарю |
Насколько я знаю js, все написано верно, но скобки в скобках делать нельзя их нужно обратным слешем выделять \'
А двойные или одинарные - не важно |
'<input id=\'td' + r + c + '\' type='text' onfocus=\'doEdit(this.id);\' onblur=\'doUpdate(this.value, this.id);\' />'
|
Цитата:
Но вопрос был не об этом, мне надо написать код для нахождения индекса ячейки, её столбца и её ряда. |
Я бы делал так.
for (var i = 0; i <= 20; i++) {
row = document.createElement('tr')
table.appendChild(row);
for (var j = 0; j <= 20; j++) {
cell = document.createElement('td');
row.appendChild(cell);
cell.innerHTML = "<input id='td" + i + ' ' + j + "' type='text' onfocus='doEdit(this.id);' onblur='doUpdate(this.value, this.id);' />"
}
}
Ошибся, теперь исправил |
Цитата:
|
| Часовой пояс GMT +3, время: 18:13. |