Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2013, 15:48
Аватар для RazieLakaALieN
Новичок на форуме
Отправить личное сообщение для RazieLakaALieN Посмотреть профиль Найти все сообщения от RazieLakaALieN
 
Регистрация: 02.08.2013
Сообщений: 3

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, чтобы потом можно было обращаться к этим инпутам в ячейках.
Если это возможно реализовать как-то по-другому, буду очень рад услышать любую идею.

Заранее благодарю

Последний раз редактировалось RazieLakaALieN, 02.08.2013 в 15:54. Причина: исправления
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2013, 16:28
JSN JSN вне форума
Аспирант
Отправить личное сообщение для JSN Посмотреть профиль Найти все сообщения от JSN
 
Регистрация: 01.09.2012
Сообщений: 57

Насколько я знаю js, все написано верно, но скобки в скобках делать нельзя их нужно обратным слешем выделять \'
А двойные или одинарные - не важно
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2013, 16:30
JSN JSN вне форума
Аспирант
Отправить личное сообщение для JSN Посмотреть профиль Найти все сообщения от JSN
 
Регистрация: 01.09.2012
Сообщений: 57

'<input id=\'td' + r + c + '\' type='text' onfocus=\'doEdit(this.id);\' onblur=\'doUpdate(this.value, this.id);\' />'
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2013, 16:32
Аватар для RazieLakaALieN
Новичок на форуме
Отправить личное сообщение для RazieLakaALieN Посмотреть профиль Найти все сообщения от RazieLakaALieN
 
Регистрация: 02.08.2013
Сообщений: 3

Сообщение от JSN Посмотреть сообщение
Насколько я знаю js, все написано верно, но скобки в скобках делать нельзя их нужно обратным слешем выделять \'
А двойные или одинарные - не важно
Ты скорее всего имел ввиду кавычки... Нет тут все верно, двойные кавычки могут содержать одинарные и наоборот, в этом случае у меня все работает...

Но вопрос был не об этом, мне надо написать код для нахождения индекса ячейки, её столбца и её ряда.
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2013, 16:33
JSN JSN вне форума
Аспирант
Отправить личное сообщение для JSN Посмотреть профиль Найти все сообщения от JSN
 
Регистрация: 01.09.2012
Сообщений: 57

Я бы делал так.
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);' />"
  }
}

Ошибся, теперь исправил

Последний раз редактировалось JSN, 02.08.2013 в 16:39.
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2013, 16:51
Аватар для RazieLakaALieN
Новичок на форуме
Отправить личное сообщение для RazieLakaALieN Посмотреть профиль Найти все сообщения от RazieLakaALieN
 
Регистрация: 02.08.2013
Сообщений: 3

Сообщение от JSN Посмотреть сообщение
Я бы делал так.
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);' />"
  }
}

Ошибся, теперь исправил
Благодарю, как вариант может сработать... только переделаю его под динамичное изменение)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таблица Приход Расход Остаток на Jquery tomas_veron jQuery 1 17.01.2013 01:22
Таблица псевдографикой Vit (X)HTML/CSS 3 27.11.2012 09:03
Конвертировать таблицу в MS Excel Alexxiss Общие вопросы Javascript 3 11.11.2012 11:36
Copy/paste from excel into ExtJs-Grid? JDev ExtJS 1 15.08.2012 18:15
Сохранить таблицу из броузера в Excel GRIG Общие вопросы Javascript 8 29.09.2009 14:46