Как работает метод contains? [дубликат]

111
16 декабря 2020, 08:50
На этот вопрос уже дан ответ здесь:
Почему идет ошибка like.addEventListener is not a function? (1 ответ)
Закрыт 1 год назад.
  1. Метод contains возвращает true если родитель содержит или равен потомку
  2. Метод contains возвращает false если родитель не содержит потомка
  3. Так будет true

var parent = document.getElementById('parent'); 
var elem = document.getElementById('elem'); 
 
console.log(parent.contains(elem));
<div id="parent"> 
  <p id="elem"></p> 
</div>

  1. Мы поменяли метод поиска и выводит в консоль ошибку почему ?

var post = document.getElementsByClassName('ada'); 
var p = document.getElementsByClassName('r'); 
 
console.log(post.contains(p))
<div id="post_1" class='ada'> 
  <p id='p' class='r'>131313</p> 
</div>

Answer 1

Во втором случае Вы получаете массивы элементов. Соответственно, нужно два вложенных цикла, чтобы проверить, какой из них содержит другой.

В простейшем случае всё вырождается в выборку по индексу 0:

var post = document.getElementsByClassName('ada'); 
var p = document.getElementsByClassName('r'); 
 
console.log(post[0].contains(p[0]))
<div id="post_1" class='ada'> 
  <p id='p' class='r'>131313</p> 
</div>

READ ALSO
Заменить %20 на пробел

Заменить %20 на пробел

Народ всем привет! Есть импут через который проходят поисковые запросы, когда в импут вбивается 1 слово поиск работает корректно но когда...

120
Помогите с мобильным меню

Помогите с мобильным меню

возникла проблема с мобильным менюПри переходе на разные страницы сайта с ним проблем нет, но когда пытаешься перейти на якорь одной страницы...

147
Регулярное выражение для строки

Регулярное выражение для строки

Мне нужна строка в JavaScript, которая может содержать одно или более слов, начинающаяся с буквыКаждое слово может содержать цифры,буквы, тире...

115
Передача аргумента

Передача аргумента

Делаю небольшую вебморду для управления своим VPN сервером на Flask'е, с js знаком лишь слегка и битый час пытаюсь сделать так, чтобы можно было...

120