Javascript.RU

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

Назначение свойств через оператор for
Я совсем новичок и заранее иизвиняюсь за наверняка нубский вопрос, но все же
Вот пример кода
<script>
var lists = document.getElementsByClassName('list')[0];
var list = [];
var tags = [];
for (i=0;i<=lists.children.length;i++){
lists.children[i].onmouseover = show;
}
function show(){
for (i=0;i<=this.children.length;i++){
tags[i] = this.children[i].tagName;
if(tags[i] == 'UL')
this.children[i].style.display = 'block';
}
}
</script>
при выполнении скрипта(работает как и задумывалось) Chrome выдает ошибки


Почему вылезают ошибки не пойму.

Последний раз редактировалось Mol4ok87, 18.06.2012 в 00:33. Причина: не загрузилась картинка
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2012, 00:58
Интересующийся
Отправить личное сообщение для denis_orlov Посмотреть профиль Найти все сообщения от denis_orlov
 
Регистрация: 06.12.2011
Сообщений: 22

не понял, что Вы пытаетесь, но вот например:

<ul class="list" id="list">
<li>123</li><li>456</li><li>789</li>
</ul>
<script>
var lists = document.getElementsByClassName('list')[0];
for (i=0;i<lists.children.length;i++){
lists.children[i].onmouseover = show;
}
function show(){
if(this.tagName == 'LI')
this.style.color= this.style.color=='red'?'green':'red'; 
}
</script>


ошибка от i<=this.children.length - выход за пределы массива

Последний раз редактировалось denis_orlov, 18.06.2012 в 01:01.
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2012, 11:14
Новичок на форуме
Отправить личное сообщение для Mol4ok87 Посмотреть профиль Найти все сообщения от Mol4ok87
 
Регистрация: 18.06.2012
Сообщений: 2

Все понял, спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2012, 11:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Впредь вдумывайтесь в тексты об ошибках, это вам очень поможет. Ошибки это не просто красный диодик сообщающий о проблеме, они несут в себе информацию.
Рассмотрим ошибку: Cannot set property 'onmouseout' of undefined
Невозможно установить свойство 'onmouseout' для undefined.
undefined - нездаданное, т.е. либо переменная значение которой отсутствует, либо вовсе что-то несуществующее.
Т.е. вы пытаетесь задать свойство 'onmouseout' для того, чего нет.
В каком случае children[i] не существует или не задан?
Если i меньше нуля, либо больше чем вообще элементов в children.
Соответственно что-то не так с итератором.
Вот таким образом вы могли сами решить проблему не прибегая к помощи форума.)
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Асинхронная отправка файла через jQuery InviS jQuery 3 23.04.2013 22:27
Эмулировать список через селект Nanto Элементы интерфейса 2 06.03.2012 11:54
Как часть php кода(не весь файл) подгружать через ajax/jquery? strol AJAX и COMET 0 19.02.2012 16:01
кеширование HTML переданого через ajax BorisBritva jQuery 6 02.04.2011 01:23
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44