Javascript.RU

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

Проверка наличия/добавление нового стиля
upd.1 Было неверно задано условие. Вместо '==' нужно читать '!=='.
upd.2 Проблема решена после установки следующего условия: if (typeof(sheet) !== 'undefined'), хоть и проверка на не-undefined лишь сиюминутное решение задачи. Благодарю за возможность высказаться,обдумать и исправить собственную проблему.

Здравствуйте. В процессе обучения возникла неразрешимая (на данный момент) проблема. Её суть заключается в том, что происходит безуспешная попытка добавления нового элемента в DOM-дерево. При первом запуске кода новый элемент, естественно, не создан, alert(sheet) пишет 'undefined' , но при повторе alert(sheet) выдает 'Object HTMLStyleElement'. Это значит, что элемент успешно создан и значение присвоено переменной sheet, но следующая проверка (sheet !== 'undefined') снова дает на исполнение блок else. Думал, что проблема в установленной зоне видимости, но ее изменение ничего не дало. Тем не менее, запись (typeof(sheet) !=== 'undefined') при первом же запуске дает ошибку на строке sheet.innerHTML, вида 'sheet is undefined'. Прошу прощения за глубокую вложенность и за возможную неточность в терминологии.

<script type = "text/javascript">
 window.onload = function()
  {
   var tb = document.getElementById('test_button');
   var sheet;
   if (tb)
    {
     tb.onclick = function()
      {
       if (sheet !== 'undefined')
        {
	 sheet.innerHTML = "div {border: 2px solid black;}";
         document.body.appendChild(sheet);
         alert('Ok');
     	}
       else
	{
	 alert(sheet);
	 alert('Not ok!');
	 sheet = document.createElement('style');
	 //sheet.parentNode.removeChild(sheet);
	}
   }
  }
 };
</script>


<form id = "test_form">
 <input type = "button" value = "Click" id = "test_button" />
</form>
<div>
<p>
 Well, I got a woman. Way cross town. She's good to me. Oh, oh, yeah!
</p>
</div>

Последний раз редактировалось test_11, 19.07.2011 в 21:40.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка данных формы составным условием? myafa Элементы интерфейса 8 01.04.2011 08:30
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40