Показать сообщение отдельно
  #9 (permalink)  
Старый 14.04.2012, 01:19
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от bes
Тем не менее, она возвращает true и не вызывает ошибки.
Да, я ошибся
Только true все-таки возвращается не event.relatedTarget in this.children, а !(event.relatedTarget in this.children)
event.relatedTarget in this.children возвращает false
Сообщение от bes
Что же это?
HTMLCollection, также известный в DOM-е как ChildNodeList
Он не является массивом, хотя и похож на него.
У него нету некоторых методов массивов(например сортировки, мклейки и иных)
А самое главное, он живой в отличии от массива - если вы возьмете HTMLCollection, то при изменении DOM-модели, он также изменится
Например(запускать на вашем HTML_коде)
var a = document.getElementsByTagName('a');//тоже HTMLCollection
console.log(a.length);//1
console.log(a[0]);//<a href="">
console.log(a[0].innerHTML);//content
document.getElementsByTagName('div')[0].innerHTML = 'qwe';
console.log(a.length);//0
console.log(a[0]);//undefined
console.log(a[0].innerHTML);//Ошибка - элемента уже нет


Сообщение от bes
Причём здесь оператор in и как поместить эту проверку в обработчик события исходного элемента?
Не при чем. Просто таким образом также можно проверить в одну строчку интересующее вас условие.
В одну строчку но, без in
Вы очень хотите использовать именно этот понравившийся вам оператор?
Ответить с цитированием