Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Редактирование ячеек таблицы (Bu-Bu)
Author Message
Bu-Bu
Заглянувший



Joined: 09 Jun 2009
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Tue Jun 09, 2009 7:39 pm (написано за 4 минуты 8 секунд)
   Post subject: Редактирование ячеек таблицы
Reply with quote

Задумал сделать таблицу данных с визуальным прямым редактированием. Все почти получается кроме основного - не могу получить текстового значения ячейки для редактирования, т.е. задав <td id="рупь сорок">Колбаса</td> я не могу получить в скрипте значения "Колбаса". Уже все перерыл и перепробовал всякие подсказки. Мне думается, что Сезам должен открывать при такой конструкции: document.getElementById("рупь сорок").innerHtml, однако вместо "Колбасы" получаю undefined. Может кто подскажет выход? P.S. Кроссбраузерность не нужна - скрипт для IE.
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 83
   поощрить/наказать


PostPosted: Tue Jun 09, 2009 7:53 pm (спустя 14 минут; написано за 2 минуты 25 секунд)
   Post subject:
Reply with quote

Bu-Bu,
лучше всего:
document.getElementById("рупь сорок").firstChild.nodeValue,
но можно и через innerHTML (вы просто его неверно написали -- не в том регистре!).

А еще есть такое свойство, contentEditable, при клике по ячейке, JS, вам позволит поправить её содержимое...
Попробуйте document.getElementById("рупь сорок").contentEditable = true;
Back to top
View user's profile Send private message Send e-mail
Bu-Bu
Заглянувший



Joined: 09 Jun 2009
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Tue Jun 09, 2009 8:05 pm (спустя 11 минут; написано за 3 минуты 47 секунд)
   Post subject:
Reply with quote

Александр Михалицын wrote:
Bu-Bu,


А еще есть такое свойство, contentEditable, при клике по ячейке, JS, вам позволит поправить её содержимое...
Попробуйте document.getElementById("рупь сорок").contentEditable = true;
Интересный ход, но куда сохраняется результат редактирования? У меня не форма а таблица. Кстати Ваше первое решение супер, просто хочу уточнить по второму варианту.
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 83
   поощрить/наказать


PostPosted: Tue Jun 09, 2009 8:13 pm (спустя 7 минут; написано за 29 секунд)
   Post subject:
Reply with quote

Bu-Bu,
как куда? В текстовый нод, у элемента. ;-)
Получить его можете через:
Code (JavaScript): скопировать код в буфер обмена
document.getElementById(" ").firstChild.nodeValue
Back to top
View user's profile Send private message Send e-mail
Bu-Bu
Заглянувший



Joined: 09 Jun 2009
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Tue Jun 09, 2009 8:18 pm (спустя 4 минуты; написано за 1 минуту 42 секунды)
   Post subject:
Reply with quote

Может я неправильно выразился, т.е. каждую ячейку нужно снабжать конструкцией document.getElementById("рупь сорок").contentEditable = true? Или она по onClick() может быть вызвана скриптом? Тогда как произойдет запись? Нужно делать какую-то внешнюю кнопку? Или как?
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 197
   поощрить/наказать

Location: 007 495

PostPosted: Tue Jun 09, 2009 8:54 pm (спустя 36 минут; написано за )
   Post subject:
Reply with quote

В принципе, Вы можете сделать любым способом. А значение через innerHTML получать. Но еще лучше использовать обычный input type=text.
Back to top
View user's profile Send private message Send e-mail
Bu-Bu
Заглянувший



Joined: 09 Jun 2009
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Tue Jun 09, 2009 9:00 pm (спустя 5 минут; написано за 45 секунд)
   Post subject:
Reply with quote

innerHtml почему-то так и не сработал. Помог вариант предыдущего отвечающего. Буду разбираться, спасибо!
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 197
   поощрить/наказать

Location: 007 495

PostPosted: Tue Jun 09, 2009 9:20 pm (спустя 20 минут; написано за )
   Post subject:
Reply with quote

Вам же уже ответили, что регистр важен, и что нужно писать именно innerHTML, а не innerHtml, как Вы упорно пытаетесь писать.
Back to top
View user's profile Send private message Send e-mail
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 83
   поощрить/наказать


PostPosted: Wed Jun 10, 2009 5:19 am (спустя 7 часов 58 минут; написано за 39 секунд)
   Post subject:
Reply with quote

Bu-Bu,
Quote:
Может я неправильно выразился, т.е. каждую ячейку нужно снабжать конструкцией document.getElementById("рупь сорок").contentEditable = true? Или она по onClick() может быть вызвана скриптом? Тогда как произойдет запись? Нужно делать какую-то внешнюю кнопку? Или как?
Нет же. Вы ОДИН раз для каждой ячейки устанавливаете это свойство и их можно будет редактировать.
Back to top
View user's profile Send private message Send e-mail
Bu-Bu
Заглянувший



Joined: 09 Jun 2009
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Wed Jun 10, 2009 8:12 am (спустя 2 часа 52 минуты; написано за 1 минуту 16 секунд)
   Post subject:
Reply with quote

Спасибо, пока порешаю стандартным способом, но этот тоже взял на заметку.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML