|
|
|
| Вот такая функция отрабатывает после при изменении пункта <select> пользователем (Ajax):
function func1()
{
var response,t,info='',i,main,op,optext;
if (request.readyState == 4)
{
if (request.status == 200)
{
try
{
t = request.responseText.split("|");
main = document.getElementById('fid2');
if (main.hasChildNodes())
{
op = main.firstChild;
while (op = op.nextSibling)
main.removeChild(op.previousSibling);
main.removeChild(op);
}
for (i=0; i<t.length-2; i+=2)
{
op = document.createElement('option');
optext = document.createTextNode(t[i+1]);
op.appendChild(optext);
op.setAttribute('value',t[i]);
main.appendChild(op);
}
}
catch(e)
{
alert("Ошибка чтения ответа: " + e.toString());
}
}
else
alert("Возникли проблемы во время получения данных: \n" + request.statusText);
}
}
Во время выполнения вываливается alert с текстом "Ошибка чтения ответа: [object Error]"
В чем тут проблема? | |
|
|
|
|
|
|
|
для: MRE
(10.06.2007 в 15:18)
| | Без этого If:
if (main.hasChildNodes())
{
op = main.firstChild;
while (op = op.nextSibling)
main.removeChild(op.previousSibling);
main.removeChild(op);
}
работает нормально, но мне необходимо при каждом вызове функции удалять все узлы main. | |
|
|
|
|
|
|
|
для: MRE
(10.06.2007 в 15:22)
| | Все, разобрался, нужно было добавить одну строчку в if
if (main.hasChildNodes())
{
op = main.firstChild;
while (op = op.nextSibling)
main.removeChild(op.previousSibling);
op = main.firstChild;
main.removeChild(op);
}
иначе последняя main.removeChild(op) пыталась удалить не объект узла. | |
|
|
|