Сообщение от 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
Вы очень хотите использовать именно этот понравившийся вам оператор?