Pagina 1 din 1

Explicatie despre childNodes

Scris: Lun Oct 15, 2012
de steell
salut marplo. la pagina Lucrul cu getElementById , la partea cu childNodes, sub codul acela sursa este explicatia codului, insa nu cred ca este corecta ori nu am inteles-o eu.
In sursa este asa:

Cod: Selectaţi tot

<div id="ex2">Un text oarecare - <span>JavaScript in span</span> - alt text</div>

<script type="text/javascript">
<!--
function test2() {
    var val2 = document.getElementById("ex2").childNodes[1].childNodes[0].nodeValue;
    alert(val2);
}
//-->
</script>
Iar la explicatia spune ca se prea valoarea primului element din elementul 2 din DIV-ul #ex2; insa in DIV este doar un element si anume <span>. nu ar fi trebuit sa arate cam asa?

Cod: Selectaţi tot

<div id="ex2">
<span>primul element</span>
<p>
    <span>primul sub element</span>
     <span>al doilea sub element</span>
</p> 
alt text care nu este in niciun element</div>
Deci codul ar trebui sa arate in alert() "primul sub element". Desi asa pare logic (pentru mine) am vazut ca totusi nu functioneaza cum cred eu ca ar trebui sa functioneze. Poti sa oferi o alta explicatie?

Explicatie despre childNodes

Scris: Lun Oct 15, 2012
de MarPlo
Sallut
Explicatia e ca si textul din tag e considerat element /obiect copil in acel tag.
De exemplu, in acest cod HTML:

Cod: Selectaţi tot

<div id="ex2"> - <span>JavaScript in span</span> - alt text</div>
In DIV sunt 3 elemente /obiecte copil distincte recunoscute de childNodes.
- Primul element in #ex2 e textul pana la <span>, adica, document.getElementById("ex2").childNodes[0].nodeValue; va returna: " - ".
- Al doilea element /oboect e tag-ul <span> cu tot ce e in el.
- Al treilea element este textul de dupa </span>, adica, document.getElementById("ex2").childNodes[2].nodeValue; va returna: " - alt text".

Asa se lucreaza cu obiecte si elemente copil in DOM; textul fiind si el considerat un obiect.