Как побороть read-only свойство innerHTML для tr, td в IE ?

Сергей Тарасов

Профессор
Как побороть read-only свойство innerHTML для tr, td в IE ?

Собственно, сабж.
Наткнулся на такие грабли: в IE свойство innerHTML для элементов tr и td только для чтения. Попытка записать туда что-то вызывает ошибку.
Откуда проблема: по аяксу приходит строка для tr вида

<td ..>...</td><td ..>...</td><td ..>...</td>

Есть id существующего <tr>
Туда нужно записать эту строку...

Как вариант можно получать XHTML через responseXML но опять-таки непонятно как его вписать в существующую строку??

Заранее спасибо.
 

Viktor_Rez

Новичок
Можно попробовать CreateElement, а потом вызвать из таблицы replaceChild, если конечно имеется id аблицы.
 

@ndrey

Новичок
а нельзя ли в div возвращать всю таблицу? или слишком громоздко получается?
 

Сергей Тарасов

Профессор
Автор оригинала: @ndrey
а нельзя ли в div возвращать всю таблицу? или слишком громоздко получается?
Как вариант конечно, но вс-таки таблица большая... будет тормозить и на серваке и на клиенте...

-~{}~ 21.09.07 15:45:

Автор оригинала: Viktor_Rez
Можно попробовать CreateElement, а потом вызвать из таблицы replaceChild, если конечно имеется id аблицы.
id имеется. Как?
 

kruglov

Новичок
Я у себя делил на строки и на ячейки, а потом их вписивал через DOM циклами.
 

kruglov

Новичок
Сергей Тарасов
Ну как, окружил эти <tr><td>...</td></tr> тегами <table><tbody id="ajax_result"> ... </tbody></table> еще при выдаче, а потом чистая техника - спопипастенный код (код неуниверсален, универсалить влом):

PHP:
tb1=document.getElementById('ajax_result') // tbody подгруженной в слой-буфер таблицы
for(r=0;r<tb1.rows.length;r++){
	row0=tb1.rows[r]
	row=document.createElement('tr')
	row.vAlign=row0.vAlign
	row.className=row0.className
	row.style.cssText=row0.style.cssText
	for(d=0;d<row0.cells.length;d++){
		cell0=row0.cells[d]
		cell=document.createElement('td')
		cell.colSpan=cell0.colSpan
		cell.rowSpan=cell0.rowSpan
		cell.align=cell0.align
		cell.style.cssText=cell0.style.cssText
		cell.className=cell0.className
		cell.height=cell0.height
		cell.width=cell0.width
		cell.innerHTML=cell0.innerHTML
		row.appendChild(cell) 
	}
		
	tb.appendChild(row) // дописали к нужному tbody уже в главной таблице
}
 

kruglov

Новичок
Сергей Тарасов
Ну извиняйте, хозяин, что смог.
60% этого кода вообще чисто атрибуты копирует. Нужные. Мне.

-~{}~ 21.09.07 21:51:

Вы его копипастить собрались прям сразу что ли? Это ж иллюстрация... Хотя и рабочая.
 

Сергей Тарасов

Профессор
kruglov

Меня не очень прельщает перспектива делать еще буферный слой... Нельзя ли как-то разобрать XHTML-ответ без явной вставки его в документ?
 

kruglov

Новичок
Сергей Тарасов
Ну, мне все равно было, вы, если нужно, разбирайте без буфера...
 
Сверху