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, время: 03:08. |