@@ -13,19 +13,21 @@ quote}}
1313
1414{{index drawing, parsing}}
1515
16- Cuando abres una página web en tu navegador, el navegador obtiene el texto de
17- la página ((HTML)) y lo analiza, de una manera bastante similar a la manera en
18- que nuestro analizador del [ Capítulo ?] ( language#parsing ) analizaba los programas.
19- El navegador construye un modelo de la ((estructura)) del documento y utiliza
20- este modelo para dibujar la página en la pantalla.
16+ Cuando abres una página web en tu navegador, el navegador obtiene el
17+ texto de la página ((HTML)) y lo analiza, de una manera bastante
18+ similar a la manera en que nuestro analizador del [ Capítulo ?] ( language#parsing )
19+ analizaba los programas. El navegador construye un modelo de la
20+ ((estructura)) del documento y utiliza este modelo para dibujar la
21+ página en la pantalla.
2122
2223
2324{{index "live data structure"}}
2425
25- Esta representación del ((documento)) es uno de los juguetes que un programa de
26- JavaScript tiene disponible en su ((caja de arena)). Es una ((estructura de
27- datos)) que puedes leer o modificar. Y actúa como una estructura en _ tiempo real_ : cuando se modifica, la página en la pantalla es actualizada para
28- reflejar los cambios.
26+ Esta representación del ((documento)) es uno de los juguetes que un
27+ programa de JavaScript tiene disponible en su ((caja de arena)). Es
28+ una ((estructura de datos)) que puedes leer o modificar. Y actúa como
29+ una estructura en _ tiempo real_ : cuando se modifica, la página en la
30+ pantalla es actualizada para reflejar los cambios.
2931
3032## La estructura del documento
3133
@@ -59,56 +61,61 @@ Esta página tiene la siguiente estructura:
5961
6062{{indexsee "Document Object Model", DOM}}
6163
62- La estructura de datos que el navegador utiliza para representar el documento
63- sigue esta figura. Para cada caja, hay un objeto, con el que podemos
64- interactuar para descubrir cosas como que etiqueta de HTML representa y
65- que cajas y texto contiene. Esta representación es llamada _ Modelo de Objeto del
66- Documento_ o ((DOM)) _ (por sus siglas en inglés "Document Object Model")_ .
64+ La estructura de datos que el navegador utiliza para representar el
65+ documento sigue esta figura. Para cada caja, hay un objeto, con el que
66+ podemos interactuar para descubrir cosas como que etiqueta de HTML
67+ representa y que cajas y texto contiene. Esta representación es llamada
68+ _ Modelo de Objeto del Documento_ o ((DOM)) _ (por sus siglas en inglés
69+ "Document Object Model")_ .
6770
6871{{index "documentElement property", "head property", "body property", "html (HTML tag)", "body (HTML tag)", "head (HTML tag)"}}
6972
7073El objeto de enlace global ` document ` nos da acceso a esos objetos. Su
7174propiedad ` documentElement ` hace referencia al objeto que representa
72- a la etiqueta ` <html> ` . Dado que cada documento HTML tiene una cabecera y un
73- cuerpo, también tiene propiedades ` head ` y ` body ` que apuntan a esos elementos.
75+ a la etiqueta ` <html> ` . Dado que cada documento HTML tiene una cabecera
76+ y un cuerpo, también tiene propiedades ` head ` y ` body ` que apuntan a
77+ esos elementos.
7478
7579## Árboles
7680
7781{{index [ nesting, "of objects"] }}
7882
7983Pensemos en los ((árbol))es ((sintáctico))s del [ Capítulo ?] ( language#parsing )
80- por un momento. Sus estructuras son sorprendentemente similares a la estructura
81- de un documento del navegador. Cada _ ((nodo))_ puede referirse a otros nodos
82- _ hijos_ que, a su vez, pueden tener hijos propios. Esta forma es típica de
83- las estructuras anidadas donde los elementos pueden contener sub elementos que
84- son similares a ellos mismos.
84+ por un momento. Sus estructuras son sorprendentemente similares a la
85+ estructura de un documento del navegador. Cada _ ((nodo))_ puede
86+ referirse a otros nodos _ hijos_ que, a su vez, pueden tener hijos
87+ propios. Esta forma es típica de las estructuras anidadas donde los
88+ elementos pueden contener sub elementos que son similares a ellos
89+ mismos.
8590
8691{{index "documentElement property", [ DOM, tree] }}
8792
88- Le damos el nombre de _ ((árbol))_ a una estructura de datos
89- cuando tiene una estructura de ramificación, no tiene ((ciclo))s
90- (un nodo no puede contenerse a sí mismo, directa o indirectamente) y
91- tiene una única _ ((raíz))_ bien definida. En el caso del _ DOM_ ,
93+ Le damos el nombre de _ ((árbol))_ a una estructura de datos cuando
94+ tiene una estructura de ramificación, no tiene ((ciclo))s (un nodo
95+ no puede contenerse a sí mismo, directa o indirectamente) y tiene
96+ una única _ ((raíz))_ bien definida. En el caso del _ DOM_ ,
9297` document.documentElement ` hace la función de raíz.
9398
9499{{index sorting, [ "data structure", "tree"] , "syntax tree"}}
95100
96- Los árboles aparecen constantemente en las ciencias de la computación _ (computer sience) _ .
97- Además de representar estructuras recursivas como los documentos HTML o
98- programas, también son comúnmente usados para mantener ((conjunto))s
99- ordenados de datos debido a que los elementos generalmente pueden ser
100- encontrados o agregados más eficientemente en un árbol que en un
101- arreglo plano.
101+ Los árboles aparecen constantemente en las ciencias de la computación
102+ _ (computer sience) _ . Además de representar estructuras recursivas como
103+ los documentos HTML o programas, también son comúnmente usados para
104+ mantener ((conjunto))s ordenados de datos debido a que los elementos
105+ generalmente pueden ser encontrados o agregados más eficientemente en
106+ un árbol que en un arreglo plano.
102107
103108{{index "leaf node", "Egg language"}}
104109
105110Un árbol típico tiene diferentes tipos de ((nodo))s. El árbol sintáctico
106- del [ lenguaje _ Egg_ ] ( language ) tenía identificadores, valores y nodos de
107- aplicación. Los nodos de aplicación pueden tener hijos, mientras que los
108- identificadores y valores son _ hojas_ , o nodos sin hijos.
111+ del [ lenguaje _ Egg_ ] ( language ) tenía identificadores, valores y nodos
112+ de aplicación. Los nodos de aplicación pueden tener hijos, mientras
113+ que los identificadores y valores son _ hojas_ , o nodos sin hijos.
109114
110115{{index "body property", [ HTML, structure] }}
111116
117+
118+
112119Lo mismo sucede para el DOM, los nodos para los _ ((elemento))s_ ,
113120los cuales representan etiquetas HTML, determinan la estructura del
114121documento. Estos pueden tener ((nodos hijos)). Un ejemplo de estos
@@ -118,14 +125,16 @@ nodos es `document.body`. Algunos de estos hijos pueden ser
118125
119126{{index "text node", element, "ELEMENT_NODE code", "COMMENT_NODE code", "TEXT_NODE code", "nodeType property"}}
120127
121- Cada objeto _ nodo DOM_ tiene una propiedad ` nodeType ` , la cual contiene un
122- código (numérico) que identifica el tipo de nodo. Los _ Elementos_ tienen
123- el código 1, que también es definido por la propiedad constante
124- ` Node.ELEMENT_NODE ` . Los nodos de texto, representando una sección de
125- texto en el documento, obtienen el código 3 (` Node.TEXT_NODE ` ). Los
126- comentarios obtienen el código 8 (` Node.COMMENT_NODE ` ).
128+ Cada objeto _ nodo DOM_ tiene una propiedad ` nodeType ` , la cual
129+ contiene un código (numérico) que identifica el tipo de nodo. Los
130+ _ Elementos_ tienen el código 1, que también es definido por la
131+ propiedad constante ` Node.ELEMENT_NODE ` . Los nodos de texto, representando
132+ una sección de texto en el documento, obtienen el código 3
133+ (` Node.TEXT_NODE ` ). Los comentarios obtienen el código 8
134+ (` Node.COMMENT_NODE ` ).
127135
128- Otra forma de visualizar nuestro ((árbol)) de documento es la siguiente:
136+ Otra forma de visualizar nuestro ((árbol)) de documento es la
137+ siguiente:
129138
130139{{figure {url: "img/html-tree.svg", alt: "HTML document as a tree",width: "8cm"}}}
131140
@@ -142,11 +151,11 @@ Usar códigos numéricos crípticos para representar a los tipos de
142151nodos no es algo que se parezca al estilo de JavaScript para hacer
143152las cosas. Más adelante en este capítulo, veremos cómo otras partes
144153de la interfaz DOM también se sienten engorrosas y alienígenas.
145- La razón de esto es que DOM no fue diseñado solamente para
146- JavaScript. Más bien, intenta ser una interfaz _ independiente del
147- lenguaje _ que puede ser usada en otros sistemas, no
148- solamente para HTML pero también para ((XML)), que es un ((formato
149- de datos)) genérico con una sintaxis similar a la de HTML.
154+ La razón de esto es que DOM no fue diseñado solamente para JavaScript.
155+ Más bien, intenta ser una interfaz _ independiente del lenguaje _ que
156+ puede ser usada en otros sistemas, no solamente para HTML pero
157+ también para ((XML)), que es un ((formato de datos)) genérico con
158+ una sintaxis similar a la de HTML.
150159
151160{{index consistency, integration}}
152161
@@ -193,11 +202,11 @@ otros nodos cercanos. El siguiente diagrama los ilustra:
193202
194203{{index "child node", "parentNode property", "childNodes property"}}
195204
196- A pesar de que el diagrama muestra un solo enlace por cada tipo, cada nodo
197- tiene una propiedad ` parentNode ` que apunta al nodo al que pertenece, si
198- es que hay alguno. Igualmente, cada nodo _ elemento_ (nodo tipo 1) tiene
199- una propiedad ` childNodes ` que apunta a un objeto similar a un arreglo
200- que almacena a sus hijos.
205+ A pesar de que el diagrama muestra un solo enlace por cada tipo, cada
206+ nodo tiene una propiedad ` parentNode ` que apunta al nodo al que
207+ pertenece, si es que hay alguno. Igualmente, cada nodo _ elemento_
208+ (nodo tipo 1) tiene una propiedad ` childNodes ` que apunta a un objeto
209+ similar a un arreglo que almacena a sus hijos.
201210
202211{{index "firstChild property", "lastChild property", "previousSibling property", "nextSibling property"}}
203212
@@ -206,11 +215,11 @@ utilizando únicamente estos enlaces entre padre e hijo. Pero JavaScript
206215también te otorga acceso a un número de enlaces adicionales convenientes.
207216Las propiedades ` firstChild ` y ` lastChild ` apuntan al primer y último
208217elementos hijo, o tiene el valor ` null ` para nodos sin hijos. De
209- manera similar, las propiedades ` previousSibling ` y ` nextSibling ` apuntan
210- a los nodos adyacentes, los cuales, son nodos con el mismo padre que
211- aparecen inmediatamente antes o después del nodo. Para el primer hijo
212- ` previousSibling ` será ` null ` y para el último hijo, ` nextSibling `
213- será ` null ` .
218+ manera similar, las propiedades ` previousSibling ` y ` nextSibling `
219+ apuntan a los nodos adyacentes, los cuales, son nodos con el mismo
220+ padre que aparecen inmediatamente antes o después del nodo. Para el
221+ primer hijo ` previousSibling ` será ` null ` y para el último hijo,
222+ ` nextSibling ` será ` null ` .
214223
215224{{index "children property", "text node", element}}
216225
@@ -222,9 +231,9 @@ en nodos de tipo texto.
222231{{index "talksAbout function", recursion, [ nesting, "of objects"] }}
223232
224233Cuando estás tratando con estructuras de datos anidadas como esta,
225- las funciones recursivas son generalmente útiles. La siguiente
226- función escanea un documento por ((nodos de texto)) que contengan
227- una cadena dada y regresan ` true ` en caso de que encuentren una:
234+ las funciones recursivas son generalmente útiles. La siguiente función
235+ escanea un documento por ((nodos de texto)) que contengan una cadena
236+ dada y regresan ` true ` en caso de que encuentren una:
228237
229238{{id talksAbout}}
230239
@@ -286,15 +295,15 @@ console.log(link.href);
286295
287296{{index "child node"}}
288297
289- Todos los nodos _ elemento_ tienen un método ` getElementsByTagName ` , el cual
290- recolecta a todos los elementos con un nombre de etiqueta dado que
298+ Todos los nodos _ elemento_ tienen un método ` getElementsByTagName ` , el
299+ cual recolecta a todos los elementos con un nombre de etiqueta dado que
291300son descendientes (hijos directos o indirectos) de ese nodo y los
292301regresa como un objeto parecido a un arreglo.
293302
294303{{index "id attribute", "getElementById method"}}
295304
296- Para encontrar un _ único_ nodo en específico, puedes otorgarle un atributo ` id `
297- y usar ` document.getElementById ` .
305+ Para encontrar un _ único_ nodo en específico, puedes otorgarle un
306+ atributo ` id ` y usar ` document.getElementById ` .
298307
299308``` {lang: "text/html"}
300309<p>Mi avestruz Gertrudiz:</p>
0 commit comments