Explicatie despre childNodes
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
steell
- Mesaje:190
Explicatie despre childNodes
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?
MarPlo
Mesaje:4343
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.