Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Viktor (Megai от 26 Января 2004, 03:07:45

Название: Как сделать что-то вроде innerHTML для ячейки таблицы
Отправлено: Viktor (Megai от 26 Января 2004, 03:07:45
На сколько я знаю - конструкции с innerHTML outerHTML innerText outerText не работают, когда рпименять их либо к строкам, либо к ячейкам таблицы, так вот - отсюда возникает вопрос - как можно проделать этокую операцию


И еще вопросик:
Допустим есть таблица 4х4, нужно, чтоб при событии onclick в массив[0] заносился идентфикатор ячейки таблицы, а далее по событию onmuusemove - все последующие ячейки, над которыми проходила мышь, данная вещь нужна для создания простейшего редактора таблиц, т.е. протащив эту ячейку мы устанавливаем, над сколькии ячейками прошла мышь и пстроив путь выставляем в первой ячейке rowspan и colspan в соответствие с количеством ячеек, а далее удаляем ячейки в соответствии с массивом. Таким образом я собираюсь получить операцию MargeCell, и соответственно затем сделать функцию SplitCell

Если есть уже готовый скрипт, то  буду признателен за помощь...
Название: Как сделать что-то вроде innerHTML для ячейки таблицы
Отправлено: Nickii от 26 Января 2004, 10:24:23
Ну приехали. Что у тебя там не работает?

 
 
Бред

 
 
 var obj=document.getElementById("td1"),
      obj.innerHTML = "некоторый текст";

Что тут может не работать? Используется только свойство innerHTML, все остальное хлам, который присутствует только в IE

По поводу обработки событий


 установи в конце HTML документа обработчики событий

onmouseover = eventHandler;
onmouseout = eventHandler;

function eventHandler(e)
{
 if(!e) e = event;

 //Ну а дальше обрабатываешь событие e
 например:
 е.type - тип произошедшего события
 e.srcElement - объект на котором произошло событие (точно не помню)

 /*смотреть свойства объекта умеешь? Посмотри! Там много чего интересного*/

 //далее ты должен проверить что событие произошло над ячейкой таблицы
 if(e.type=="mouseover" && e.srcElement.nodeName=="TD")
  обработка.

/* но такой проверки недостаточно так как в MZ в нутри ячейки есть Node с именем text.(или что-то в этом роде)*/

//поэтому правильная проверка такая
 if(e.type=="mouseover" && (e.srcElement.nodeName=="TD" || (e.srcElement.nodeName=="TEXT" && e.srcElement.parentNode.nodeName == "TD"))

/* или что-то в этом роде. Приложи мозги. Тут все прозрачно */
}


Если что не понятно спрашивай.

Кстати есть еще целая куча способов установки обработчика событий, например на каждую ячейку в отдельности, тогда и функция обработки будет проще.
Название: Как сделать что-то вроде innerHTML для ячейки таблицы
Отправлено: гоша от 26 Января 2004, 13:14:24
> так как в MZ в нутри ячейки есть Node с именем text

очень смешно...

Viktor (Megai

всего навалом:
http://www.google.com/search?q=wysiwyg+editor+javascript
Название: Как сделать что-то вроде innerHTML для ячейки таблицы
Отправлено: Nickii от 26 Января 2004, 21:12:34
Цитировать
гоша:
очень смешно...


Поясни.