Node#
Node.hasChildNodes()#
Metoda hasChildNodes()
zwraca boolowską wartość true
jeśli dany węzeł posiada jakiekolwiek dzieci, 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 has_child = node.hasChildNodes();
gdzie poszczególne człony oznaczają:
- has_child - boolowskie
true
lubfalse
. - node - węzeł będący obiektem kontekstu.
Algorytm wywołania metody hasChildNodes()
nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- Zwróć boolowską wartość
true
jeśli obiekt kontekstu posiada dzieci, w przeciwnym razie zwróć boolowską wartośćfalse
.
Metoda hasChildNodes()
przydaje się w warunkach logicznych, kiedy dalsze fragmenty kodu zależą od stanu posiadania dzieci przez węzeł. Alternatywne rozwiązanie polega na skorzystaniu z właściwość Node.childNodes
, która zwróci kolekcję węzłową ze wszystkimi dziećmi w węźle (ich liczbę odczytamy poprzez właściwość Node.length
).
Prosty przykład:
<script>
document.write(document.hasChildNodes()); // true
document.write("<br>");
document.write(document.documentElement.hasChildNodes()); // true
document.write("<br>");
document.write(document.body.firstChild.hasChildNodes()); // false
document.write("<br>");
document.write(document.createElement("div").hasChildNodes()); // false
document.write("<br><br>");
if (document.hasChildNodes()){
document.write("Są dzieci - detekcja za pośrednictwem metody Node.hasChildNodes()");
}
document.write("<br><br>");
if (document.childNodes.length){
document.write("Są dzieci - detekcja za pośrednictwem właściwości Document.childNodes");
document.write("<br>");
document.write("childNodes.length: " + document.childNodes.length);
}
</script>
Składnia Web IDL#
interface Node : EventTarget { boolean hasChildNodes(); }