0
  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>
Leks
  • 151
  • наверно потому что, возвращают методы разные по типу значения. getElementsByClassName возвращает коллекцию элементов. – Odyssey May 14 '19 at 03:41

1 Answers1

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>