Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№118-09-2006 20:10:54

Oleg NT
Участник
 
Группа: Members
Откуда: Нижний Тагил
Зарегистрирован: 10-07-2006
Сообщений: 105
Веб-сайт

Не могу разобраться с DOM в FF

Есть HTML-файл с JavaScript-кодом:

Выделить код

Код:

<!-- ...... (начало файла) -->
<script language="javascript" type="text/javascript">
var idx = 1;
function addField()
{
	var tbl = document.getElementById('fields_table').firstChild; //Теперь в tbl сидит <TBODY>

	var newTR = document.createElement('TR'); //создаем новый ряд к таблице
	newTR.id = 'fields' + (++idx);

	var newTD1 = document.createElement('TD'); //создаем две ячейки к этому новому ряду
	var newTD2 = document.createElement('TD');

	newTR.appendChild(newTD1);
	newTR.appendChild(newTD2);

	newTD1.innerHTML = '<input type="text" name="answer[]" class="textbox_contents" style="width: 200px" />';
	newTD2.innerHTML = '<input type="radio" name="answer_textbox[]" value="1" />';

	tbl.appendChild(newTR); //ДОБАВЛЯЕМ НОВЫЙ РЯД К ТАБЛИЦЕ (ВЕРНЕЕ К TBODY)
                      //В IE и Opera работает, FF ругается (Ошибка: uncaught exception: [Exception... "Node cannot be inserted at the specified point in the hierarchy"  code: "3" nsresult: "0x80530003 (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)"  location: "http://tests/1/admin.php?contents=questions&q=add Line: 221"])
}
</script>

<!-- ................ -->
<table id="fields_table">
	<tr>
		<td>Текст ответа &nbsp; <input type="button" value=" + " onclick="javascript:addField()" class="textbox_contents" style="width: 30px" title="Добавить еще один вариант" /></td>
		<td nowrap="nowrap">С текстовым полем</td>
	</tr>
	<tr id="fields1">
		<td><input type="text" name="answer[]" class="textbox_contents" style="width: 200px" /></td>
		<td><input type="radio" name="answer_textbox[]" value="1" /></td>
	</tr> 
</table>
<!-- ................. -->

При попытке добавить новый ряд к таблице IE и Opera все делают ОК, а FF не хотит... Что делать?

Отсутствует

 

№218-09-2006 21:16:41

INFOMAN
Телепаты в отпуске
 
Группа: Extensions
Откуда: Кишинев
Зарегистрирован: 31-12-2005
Сообщений: 1099
Веб-сайт

Re: Не могу разобраться с DOM в FF

А откуда там tbody? что-то я в коде его не вижу.
Попробуй

Выделить код

Код:

var tbl = document.getElementById('fields_table').firstChild;

заменить на

Выделить код

Код:

var tbl = document.getElementById('fields_table');

или добавить tbody и

Выделить код

Код:

var tbl = document.getElementById('fields_table').getElementsByTagName('tbody')[0];

Закрой кран
Включи свет ©
Fire! Kill IE is your desire | NULL | NULL

Отсутствует

 

№318-09-2006 21:27:17

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
Веб-сайт

Re: Не могу разобраться с DOM в FF

В FF в вашем примере tbl это не tbody, а текстовый узел состоящий из пробельных символов.
При работе с таблицами проще пользоваться табличными методами insertRow, insertCell

2INFOMAN
TBODY добавляет браузер, ибо он должен там быть.

Отредактировано Lynn (18-09-2006 21:28:29)


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№418-09-2006 21:53:04

Oleg NT
Участник
 
Группа: Members
Откуда: Нижний Тагил
Зарегистрирован: 10-07-2006
Сообщений: 105
Веб-сайт

Re: Не могу разобраться с DOM в FF

Спасибо за информацию, но как мне добраться до TBody (не охота insertRow и insertCell использовать, т.к. потом много кода помимо этого придется менять)?

Отсутствует

 

№518-09-2006 22:09:38

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
Веб-сайт

Re: Не могу разобраться с DOM в FF

У table есть стандартное свойство tBodies — массив всех TBODY которые есть в таблице.
Соответственно

Выделить код

Код:

var tbl = document.getElementById('fields_table').tBodies[0];

Отредактировано Lynn (18-09-2006 22:10:13)


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]