@@ -24,7 +24,7 @@ este modelo para dibujar la página en la pantalla.
2424
2525Esta representación del ((documento)) es uno de los juguetes que un programa de
2626JavaScript tiene disponible en su ((caja de arena)). Es una ((estructura de
27- datos)) que puedes leer o modificar. Esta actua como una estructura en _ tiempo real_ : cuando es modificada, la página en la pantalla es actualizada para
27+ datos)) que puedes leer o modificar. Esta actúa como una estructura en _ tiempo real_ : cuando es modificada, la página en la pantalla es actualizada para
2828reflejar los cambios.
2929
3030## Document structure
@@ -62,12 +62,12 @@ La estructura de datos que el navegador utiliza para representar el documento
6262sigue esta figura. Para cada caja, hay un objeto, con el que podemos
6363interactuar para descubrir cosas como que etiqueta de HTML lo representa y
6464que cajas y texto contiene. Esta representación es llamada _ Modelo de Objeto de
65- Documento_ o ((DOM)) _ (por sus siglas en ingles "Document Object Model")_ .
65+ Documento_ o ((DOM)) _ (por sus siglas en inglés "Document Object Model")_ .
6666
6767{{index "documentElement property", "head property", "body property", "html (HTML tag)", "body (HTML tag)", "head (HTML tag)"}}
6868
6969El documento de enlace global ` document ` nos da acceso a esos objetos. Su
70- propiedad ` documentElement ` hace referencia al objeto que esta representando
70+ propiedad ` documentElement ` hace referencia al objeto que está representando
7171a la etiqueta ` <html> ` . Dado que cada documento HTML tiene una cabecera y un
7272cuerpo, también tiene propiedades ` head ` y ` body ` , apuntando a esos elementos.
7373
@@ -79,7 +79,7 @@ Piensa en los ((árbol))es ((sintáctico))s del [Capítulo ?](language#parsing)
7979por un momento. Sus estructuras son sorprendentemente similares a la estructura
8080de un documento del navegador. Cada _ ((nodo))_ puede referirse a otros nodos
8181_ hijos_ , que a su vez pueden tener sus propios hijos. Esta forma es típica de
82- las estructuras anidadas donde los elementos pueden contener subelementos que
82+ las estructuras anidadas donde los elementos pueden contener sub elementos que
8383son similares a ellos mismos.
8484
8585{{index "documentElement property", [ DOM, tree] }}
@@ -93,30 +93,30 @@ caso del _DOM_, `document.documentElement` hace la función de raíz.
9393
9494Los árboles aparecen constantemente en las Ciencias de la computación.
9595Además de representar estructuras recursivas como los documentos o
96- programas HTML, también son comunmente usados para mantener ((conjunto))s
96+ programas HTML, también son comúnmente usados para mantener ((conjunto))s
9797ordenados de datos debido a que los elementos generalmente pueden ser
98- encontrados o agregados mas eficientemente en un árbol que en un
98+ encontrados o agregados más eficientemente en un árbol que en un
9999arreglo plano.
100100
101101{{index "leaf node", "Egg language"}}
102102
103- Un árbol tipico tiene diferentes tipos de ((nodo))s. El árbol sintáctico
104- del [ lenguaje _ Egg_ ] ( language ) tenía indentificadores , valores y nodos de
103+ Un árbol típico tiene diferentes tipos de ((nodo))s. El árbol sintáctico
104+ del [ lenguaje _ Egg_ ] ( language ) tenía identificadores , valores y nodos de
105105aplicación. Los nodos de aplicación pueden tener hijos, mientras que los
106106identificadores y valores son _ hojas_ , o nodos sin hijos.
107107
108108{{index "body property", [ HTML, structure] }}
109109
110110Lo mismo sucede para el DOM, Los nodos para los ((elemento))s, que
111111representan etiquetas HTML, determinan la estructura del documento.
112- Estos pueden tener ((nodos hijo )). Un ejemplo de estos nodos es
112+ Estos pueden tener ((nodos hijos )). Un ejemplo de estos nodos es
113113` document.body ` . Algunos de estos hijos pueden ser ((nodos hoja)), como
114114los fragmentos de ((texto)) o los nodos ((comentario)).
115115
116116{{index "text node", element, "ELEMENT_NODE code", "COMMENT_NODE code", "TEXT_NODE code", "nodeType property"}}
117117
118118Cada nodo DOM tiene una propiedad ` nodeType ` , la cual contiene un
119- código numerico que identifica el tipo de nodo. Los _ Elementos_ tienen
119+ código numérico que identifica el tipo de nodo. Los _ Elementos_ tienen
120120el código 1, que también es definido como la propiedad constante
121121` Node.ELEMENT_NODE ` . Los nodos de texto representan una sección de
122122texto en el documento y obtienen el código 3 (` Node.TEXT_NODE ` ). Los
@@ -135,10 +135,10 @@ padre-hijo entre los nodos.
135135
136136{{index "programming language", [ interface, design] , [ DOM, interface] }}
137137
138- Usar códigos numéricos cripticos para representar a los tipos de
138+ Usar códigos numéricos crípticos para representar a los tipos de
139139nodos no es algo que se parezca al estilo de JavaScript para hacer
140- las cosas. Más adelante en este capítulo, veremos como otras partes
141- de la intefaz de DOM también se sienten engorrosas y alienigenas .
140+ las cosas. Más adelante en este capítulo, veremos cómo otras partes
141+ de la interfaz de DOM también se sienten engorrosas y alienígenas .
142142La razón de esto es que DOM no fue diseñado solamente para
143143JavaScript. Más bien, intenta ser una interfaz _ independiente del
144144lenguaje_ que puede ser usado en otros sistemas también, no
@@ -147,35 +147,35 @@ de datos)) genérico con una sintaxis similar a la de HTML.
147147
148148{{index consistency, integration}}
149149
150- Esto es desaforunado . Usualmente los estándares son bastante útiles.
150+ Esto es desafortunado . Usualmente los estándares son bastante útiles.
151151Pero en este caso, la ventaja (consistencia entre lenguajes) no es tan
152- conveniente. Tener una interfaz que esta propiamente integrada con el
153- lenguaje que estas utilizando te ahorrará más tiempo que tener una
152+ conveniente. Tener una interfaz que está propiamente integrada con el
153+ lenguaje que estás utilizando te ahorrará más tiempo que tener una
154154interfaz familiar en distintos lenguajes.
155155
156156{{index "array-like object", "NodeList type"}}
157157
158158A manera de ejemplo de esta pobre integración, considera la propiedad
159159` childNodes ` que los nodos elemento en el DOM tienen. Esta propiedad
160160almacena un objeto parecido a un arreglo, con una propiedad ` length `
161- y propiedades etiquetadas por numeros para acceder a los nodos hijo .
161+ y propiedades etiquetadas por números para acceder a los nodos hijos .
162162Pero es una instancia de tipo ` NodeList ` , no es un arreglo real, por
163- lo que no tiene metodos como ` slice ` o ` map ` .
163+ lo que no tiene métodos como ` slice ` o ` map ` .
164164
165165{{index [ interface, design] , [ DOM, construction] , "side effect"}}
166166
167167Luego, hay problemas que son simplemente un pobre diseño. Por ejemplo,
168- no hay una manera de crear un nuevo nodo e inmediatamente agregarle
168+ no hay una manera de crear un nuevo nodo e inmediatamente agregar
169169hijos o ((attributo))s. En vez de eso, tienes que crearlo primero
170170y luego agregar los hijos y atributos uno por uno, usando efectos
171- secundarios. El código que interactua mucho con el DOM tiende a ser
171+ secundarios. El código que interactúa mucho con el DOM tiende a ser
172172largo, repetitivo y feo.
173173
174174{{index library}}
175175
176176Pero estos defectos no son fatales. Dado que JavaScript nos permite
177177crear nuestra propias ((abstraccion))es, es posible diseñar formas
178- mejoradas para expresar las operaciones que estas realizando. Muchas
178+ mejoradas para expresar las operaciones que estás realizando. Muchas
179179bibliotecas destinadas a la programación del navegador vienen con
180180esas herramientas.
181181
@@ -191,34 +191,34 @@ otros nodos cercanos. El siguiente diagrama los ilustra:
191191{{index "child node", "parentNode property", "childNodes property"}}
192192
193193A pesar de que el diagrama muestra solo un enlace por tipo, cada nodo
194- tien una propiedad ` parentNode ` que apunta al nodo al que pertenece, si
194+ tiene una propiedad ` parentNode ` que apunta al nodo al que pertenece, si
195195es que hay alguno. Igualmente, cada elemento nodo (nodo tipo 1) tiene
196196una propiedad ` childNodes ` que apunta a un objeto similar a un arreglo
197197que almacena a sus hijos.
198198
199199{{index "firstChild property", "lastChild property", "previousSibling property", "nextSibling property"}}
200200
201- En teoria , te deberias poder mover donde quieras en el árbol
201+ En teoría , te deberías poder mover donde quieras en el árbol
202202utilizando únicamente estos enlaces entre padre e hijo. Pero JavaScript
203- también te otorga acceso a un numero de enlaces adicionales convenientes.
203+ también te otorga acceso a un número de enlaces adicionales convenientes.
204204Las propiedades ` firstChild ` y ` lastChild ` apuntan al primer y último
205205elementos hijo, o tiene el valor ` null ` para nodos sin hijos. De
206206manera similar, las propiedades ` previousSibling ` y ` nextSibling ` apuntan
207207a los nodos adyacentes, los cuales, son nodos con el mismo padre que
208208aparecen inmediatamente antes o después del nodo. Para el primer hijo
209- ` previousSibling ` sera ` null ` y para el último hijo, ` nextSibling `
210- sera ` null ` .
209+ ` previousSibling ` será ` null ` y para el último hijo, ` nextSibling `
210+ será ` null ` .
211211
212212{{index "children property", "text node", element}}
213213
214214También existe una propiedad ` children ` , que es parecida a ` childNodes `
215215pero contiene únicamente hijos de tipo elemento (tipo 1), excluyendo
216- otros tipos de nodos. Esto puede ser útil cuando no estas interesando
216+ otros tipos de nodos. Esto puede ser útil cuando no estás interesando
217217en nodos de tipo texto.
218218
219219{{index "talksAbout function", recursion, [ nesting, "of objects"] }}
220220
221- Cuando estas tratando con estructuras de datos anidadas como esta,
221+ Cuando estás tratando con estructuras de datos anidadas como esta,
222222las funciones recursivas son regularmente útiles. La siguiente
223223función escanea un documento por ((nodos de texto)) que contengan
224224una cadena dada y regresan ` true ` en caso de que encuentren una:
@@ -259,7 +259,7 @@ texto que representa.
259259{{index [ DOM, querying] , "body property", "hard-coding", [ whitespace, "in HTML"] }}
260260
261261Navegar por estos ((enlace))s entre padres, hijos y hermanos suele
262- ser util . Pero si queremos encontrar un nodo específico en el documento,
262+ ser útil . Pero si queremos encontrar un nodo específico en el documento,
263263alcanzarlo comenzando en ` document.body ` y siguiendo un camino fijo de
264264propiedades es una mala idea. Hacerlo genera suposiciones en nuestro
265265programa sobre la estructura precisa del documento que tal vez quieras
@@ -273,7 +273,7 @@ más los espacios posteriores y anteriores entre ellos.
273273
274274Por lo que si queremos obtener el atributo ` href ` del enlace en ese
275275documento, no queremos decir algo como "Obten el segundo hijo del
276- sexto hijo del elemento _ body_ del documento". Seria mejor si pudieramos
276+ sexto hijo del elemento _ body_ del documento". Sería mejor si pudiéramos
277277decir "Obten el primer enlace en el documento". Y de hecho podemos.
278278
279279``` {sandbox: "homepage"}
@@ -285,16 +285,13 @@ console.log(link.href);
285285
286286Todos los nodos que tienen un método ` getElementsByTagName ` , el cual
287287recolecta a todos los elementos con un nombre de etiqueta dado que
288- son decendientes (hijos directos o indirectos) de ese nodo y los
288+ son descendientes (hijos directos o indirectos) de ese nodo y los
289289regresa como un objeto parecido a un arreglo.
290290
291291{{index "id attribute", "getElementById method"}}
292292
293293Para encontrar un nodo específico, puedes otorgarle un atributo ` id `
294- y usar ` document.getElementById ` .
295-
296- To find a specific _ single_ node, you can give it an ` id ` attribute
297- and use ` document.getElementById ` en su lugar.
294+ y usar ` document.getElementById ` .
298295
299296``` {lang: "text/html"}
300297<p>Mi avestruz Gertrudiz:</p>
0 commit comments