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
true
lubfalse
. - 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ść
true
jeś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); }