не получается пересоздать 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, время: 17:43. |