Провозившись последнии полгода только с перлом, теперь туплю в плане яваскрипт.
Стоит задача: есть в таблице узел из 2х строк (не чистый ХТМЛ-код, шаблон, но это не суть, т.к. обрабатывается на стороне сервера, т.е. намного раньше):
| Код | <tr> <td class="tableheader" align="right"><span id="where">_(Где):</span></td> <td class="tablebodydark"> <span id="sourceHTML"> <select name="variable" class="input_select"> <option value="customer_id">_(Номер клиента) <option value="agreement_str">_(Номер договора в компании)<TMPL_LOOP VARIABLES> <option value="<TMPL_VAR MNEMO>"><TMPL_VAR ESCAPE=HTML NAME></TMPL_LOOP> <option value="status">_(Статус) </select> </span> </td> </tr>
<tr> <td class="tableheader" align="right"><span id="what">_(Что):</span></td> <td class="tablebodydark"><input type="text" name="value" value="" class="input_text"></td> </tr>
|
Необходимо добавить созможность дублирования этого узла(а также удаления дублей, но сие чуть позже), дабы передать на серверный скрипт и обработать с логикой "И" или "ИЛИ".
Вроде бы все +/- просто, помечаем последующий <tr>, например, с помощью id="insertPoint", саму таблицу с помощью id="parentObj", вылавливаем контент:
| Код | var whereW = document.getElementById('where').innerHTML; var whatW = document.getElementById('what').innerHTML; var code = document.getElementById('sourceHTML').innerHTML;
|
генерируем "дубль"
| Код | var newBlock_1 = document.createElement('tr'); newBlock_1.id = 'whereBlock_' + fieldGroupsCounter; newBlock_1.innerHTML = '<td class="tableheader" align="right">' + whereW + '</td>' + '<td class="tablebodydark">' + code + '</td>';
var newBlock_2 = document.createElement('tr'); newBlock_2.id = 'whatBlock_' + fieldGroupsCounter; newBlock_2.innerHTML = '<td class="tableheader" align="right">' + whatW + '</td>' + '<td class="tablebodydark"><input type="text" name="value" class="input_text"></td>';
|
и вставляем
| Код | var insertPoint = document.getElementById('insertPoint'); var parentObj = document.getElementById('parentObj'); parentObj.insertBefore(newBlock_1, insertPoint); parentObj.insertBefore(newBlock_2, insertPoint);
|
Однако не срабатывает (проверял на FF2 и Opera9). Прошу помочь разобраться с задачкой.
Материт примерно так(с консоли ошибок FF):
| Код | Ошибка: uncaught exception: [Exception... "Node was not found" code: "8" nsresult: "0x80530008 (NS_ERROR_DOM_NOT_FOUND_ERR)" location: "customer_search.js Line: 25"]
|
|