Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2010, 12:51
Новичок на форуме
Отправить личное сообщение для i8th Посмотреть профиль Найти все сообщения от i8th
 
Регистрация: 20.02.2010
Сообщений: 4

не получается пересоздать 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(), то новые элементы таки создадутся. Не пойму, что не так делаю?

Последний раз редактировалось i8th, 20.02.2010 в 21:03. Причина: убраны неточности
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2010, 19:36
Кандидат Javascript-наук
Отправить личное сообщение для vk65535 Посмотреть профиль Найти все сообщения от vk65535
 
Регистрация: 21.11.2008
Сообщений: 114

function removeElement(id) {
	var e = document.getElementById(id);
	if (e) e.parentNode.removeChild(e);
}
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2010, 20:56
Новичок на форуме
Отправить личное сообщение для i8th Посмотреть профиль Найти все сообщения от i8th
 
Регистрация: 20.02.2010
Сообщений: 4

в программе изменений, к сожалению, не произошло
добавил в createSelect(a) сразу перед while вывод сообщения
alert(newSelect.id);
- id он присваивает верно, сами элементы по нажатию на кнопку появляются, а удалить их уже не получается
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2010, 22:40
Кандидат Javascript-наук
Отправить личное сообщение для vk65535 Посмотреть профиль Найти все сообщения от vk65535
 
Регистрация: 21.11.2008
Сообщений: 114

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, 20.02.2010 в 22:55.
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2010, 23:49
Новичок на форуме
Отправить личное сообщение для i8th Посмотреть профиль Найти все сообщения от i8th
 
Регистрация: 20.02.2010
Сообщений: 4

vk65535,
благодарю за помощь!
Вероятно, я неправильно добавлял опции в список, из-за чего его потом нельзя было удалить. К сожалению, мне пока не хватает знаний, чтоб писать такие простые вещи. Чтож, пойду продолжать свое обучение дальше. И еще раз спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 21.02.2010, 01:40
Кандидат Javascript-наук
Отправить личное сообщение для vk65535 Посмотреть профиль Найти все сообщения от vk65535
 
Регистрация: 21.11.2008
Сообщений: 114

Первое, что нужно сделать, - научиться пользоваться отладчиком. Тогда намного легче локализовать проблему и не нужно делать всяких alert(...). Также насчет оператора with: есть мнение, что не стоит им пользоваться
https://developer.mozilla.org/en/Cor...tatements/with
гораздо лучше временно запомнить объект в короткую переменную.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реакция на перемещение мыша по строкам в SELECT VovaLun Events/DOM/Window 0 16.12.2009 13:20
Продлема с получением данных из select Tartyga Общие вопросы Javascript 10 05.08.2009 22:13
заполнить select значениями другого select Central Элементы интерфейса 1 30.05.2009 14:41
Обработка Select Oleg_Antonov Элементы интерфейса 17 16.05.2009 03:23
событие на выпадение-скрытие списка select Aderba jQuery 1 03.04.2009 21:51