Node#
Node.contains()#
Metoda contains() zwraca boolowską wartość true jeśli przekazany węzeł jest potomkiem obejmującym dla danego węzła, w przeciwnym razie zwrócona zostanie wartość false.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var contained = node.contains(other);gdzie poszczególne człony oznaczają:
- contained - boolowskie
truelubfalse. - node - węzeł będący obiektem kontekstu.
- other - referencja do węzła sprawdzanego pod kątem potomka obejmującego dla danego węzła lub wartość
null.
Algorytm wywołania metody contains(other) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- Zwróć boolowską wartość
truejeśli other jest potomkiem obejmującym dla obiektu kontekstu, w przeciwnym razie zwróć boolowską wartośćfalse(włącznie z sytuacją, kiedy other jest wartościąnull).
Metoda contains() pozwala na szybką weryfikację, czy przekazany do niej węzeł znajduje się w wywołującym ją węźle, jak również czy mamy do czynienia z tym samym węzłem.
Prosty przykład:
<script>
var docElement = document.documentElement;
document.write(docElement.contains(document)); // false
document.write("<br>");
document.write(docElement.contains(docElement)); // true
document.write("<br>");
document.write(docElement.contains(document.body)); // true
document.write("<br>");
document.write(docElement.contains(document.createElement("div"))); // false
document.write("<br>");
document.write(docElement.contains(null)); // false
document.write("<br><br>");
document.write(document.contains(document)); // true
document.write("<br>");
document.write(document.contains(docElement)); // true
document.write("<br>");
document.write(document.contains(document.createElement("div"))); // false
document.write("<br>");
document.write(document.contains(null)); // false
</script>Na chwilę obecną wszystkie aktualne przeglądarki obsługują metodę contains() zgodnie z wymaganiami specyfikacji DOM4, z wyjątkiem IE11, która udostępnia tę metodę jedynie dla węzłów typu Element.
Metoda contains() pojawia się dopiero w specyfikacji DOM4.
Składnia Web IDL#
interface Node : EventTarget { boolean contains(Node? other); }