не получается пересоздать select
создание:
function createSelect(a) { with (document) { var newSelect; var i=1; newSelect=createElement("select"); if (a==0) { a=1; newSelect.id="horSelID"; } else { a=0; newSelect.id="verSelID"; } while (i<=Number(forms[0].elements[a].value)) { newSelect.options[newSelect.options.length] = new Option(String(i),String(i)); i++; } forms[1].appendChild(newSelect); } } удаление: function deleteSelElement(elemID) { with (document.forms[1]) { removeChild(elemID); } } пробовал вместо removeChild(elemID); elemID.parentNode.removeChild(elemID), а вместо .forms[1] - .all а запускаю так: function acceptButClick() { deleteSelElement(horSelID); deleteSelElement(verSelID); createSelect(0) ; createSelect(1) ; } Результата нет - элементы остаются на странице, а новые не создаются. Если же закомментировать первые две строчки в функции acceptButClick(), то новые элементы таки создадутся. Не пойму, что не так делаю? |
function removeElement(id) { var e = document.getElementById(id); if (e) e.parentNode.removeChild(e); } |
в программе изменений, к сожалению, не произошло
добавил в createSelect(a) сразу перед while вывод сообщения alert(newSelect.id);- id он присваивает верно, сами элементы по нажатию на кнопку появляются, а удалить их уже не получается :( |
function crSel(id, a) { var s = document.getElementById(id); if (s) s.parentNode.removeChild(s); s = document.createElement('select'); s.id = id; for (var i = 1, m = Number(document.forms[0].elements[a].value) || 0; i < m; ++i) s.options.add(new Option(i, i)); document.forms[1].appendChild(s); } function acceptButClick() { crSel('horSelID', 1); crSel('verSelID', 0); } |
vk65535,
благодарю за помощь! Вероятно, я неправильно добавлял опции в список, из-за чего его потом нельзя было удалить. К сожалению, мне пока не хватает знаний, чтоб писать такие простые вещи. Чтож, пойду продолжать свое обучение дальше. И еще раз спасибо! |
Первое, что нужно сделать, - научиться пользоваться отладчиком. Тогда намного легче локализовать проблему и не нужно делать всяких alert(...). Также насчет оператора with: есть мнение, что не стоит им пользоваться
https://developer.mozilla.org/en/Cor...tatements/with гораздо лучше временно запомнить объект в короткую переменную. |
Часовой пояс GMT +3, время: 23:08. |