>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Не могу разобраться с DOM в FF http://forum.mozilla-russia.org/viewtopic.php?id=12613 |
Oleg NT > 18-09-2006 20:10:54 |
Есть 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>Текст ответа <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 не хотит... Что делать? |
INFOMAN > 18-09-2006 21:16:41 |
А откуда там tbody? что-то я в коде его не вижу. заменить на или добавить tbody и |
Lynn > 18-09-2006 21:27:17 |
В FF в вашем примере tbl это не tbody, а текстовый узел состоящий из пробельных символов. 2INFOMAN |
Oleg NT > 18-09-2006 21:53:04 |
Спасибо за информацию, но как мне добраться до TBody (не охота insertRow и insertCell использовать, т.к. потом много кода помимо этого придется менять)? |
Lynn > 18-09-2006 22:09:38 |
У table есть стандартное свойство tBodies — массив всех TBODY которые есть в таблице. |