Skip to content

Commit b52dc4a

Browse files
vavimayor159vavimayor159
authored andcommitted
Revision contra el documento original
1 parent 9b32aaf commit b52dc4a

File tree

1 file changed

+42
-39
lines changed

1 file changed

+42
-39
lines changed

14_dom.md

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# El Modelo de Objeto del Documento
22

3-
{{quote {author: "Friedrich Nietzsche", title: "Beyond Good and Evil", chapter: true}
3+
{{quote {author: "Friedrich Nietzsche", title: "Más allá del bien y del mal", chapter: true}
44

55
¡Tanto peor! ¡Otra vez la vieja historia! Cuando uno ha acabado de
66
construir su casa advierte que, mientras la construía, ha aprendido, sin darse
@@ -9,7 +9,7 @@ a construir.
99

1010
quote}}
1111

12-
{{figure {url: "img/chapter_picture_14.jpg", alt: "Picture of a tree with letters and scripts hanging from its branches", chapter: "framed"}}}
12+
{{figure {url: "img/chapter_picture_14.jpg", alt: "Foto de un árbol con letras y _scripts_ colgando de sus ramas", chapter: "framed"}}}
1313

1414
{{index drawing, parsing}}
1515

@@ -24,16 +24,17 @@ este modelo para dibujar la página en la pantalla.
2424

2525
Esta representación del ((documento)) es uno de los juguetes que un programa de
2626
JavaScript tiene disponible en su ((caja de arena)). Es una ((estructura de
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
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
2828
reflejar los cambios.
2929

3030
## La estructura del documento
3131

3232
{{index [HTML, structure]}}
3333

34-
Te puedes imaginar a un documento HTML como un conjunto anidado de ((caja))s.
35-
Las etiquetas como `<body>` y `</body>` encierran otras ((caja))s, que a su vez,
36-
contienen otras etiquetas o ((texto)). Este es el documento del ejemplo del
34+
Te puedes imaginar a un documento HTML como un conjunto anidado de
35+
((caja))s. Las etiquetas como `<body>` y `</body>` encierran otras
36+
((etiqueta))s, que a su vez, contienen otras etiquetas o ((texto)).
37+
Este es el documento de ejemplo del
3738
[capítulo anterior](browser):
3839

3940

@@ -60,40 +61,41 @@ Esta página tiene la siguiente estructura:
6061

6162
La estructura de datos que el navegador utiliza para representar el documento
6263
sigue esta figura. Para cada caja, hay un objeto, con el que podemos
63-
interactuar para descubrir cosas como que etiqueta de HTML lo representa y
64-
que cajas y texto contiene. Esta representación es llamada _Modelo de Objeto de
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
6566
Documento_ o ((DOM)) _(por sus siglas en inglés "Document Object Model")_.
6667

6768
{{index "documentElement property", "head property", "body property", "html (HTML tag)", "body (HTML tag)", "head (HTML tag)"}}
6869

69-
El documento de enlace global `document` nos da acceso a esos objetos. Su
70-
propiedad `documentElement` hace referencia al objeto que está representando
70+
El objeto de enlace global `document` nos da acceso a esos objetos. Su
71+
propiedad `documentElement` hace referencia al objeto que representa
7172
a la etiqueta `<html>`. Dado que cada documento HTML tiene una cabecera y un
72-
cuerpo, también tiene propiedades `head` y `body`, apuntando a esos elementos.
73+
cuerpo, también tiene propiedades `head` y `body` que apuntan a esos elementos.
7374

7475
## Árboles
7576

7677
{{index [nesting, "of objects"]}}
7778

78-
Piensa en los ((árbol))es ((sintáctico))s del [Capítulo ?](language#parsing)
79+
Pensemos en los ((árbol))es ((sintáctico))s del [Capítulo ?](language#parsing)
7980
por un momento. Sus estructuras son sorprendentemente similares a la estructura
8081
de un documento del navegador. Cada _((nodo))_ puede referirse a otros nodos
81-
_hijos_, que a su vez pueden tener sus propios hijos. Esta forma es típica de
82+
_hijos_ que, a su vez, pueden tener hijos propios. Esta forma es típica de
8283
las estructuras anidadas donde los elementos pueden contener sub elementos que
8384
son similares a ellos mismos.
8485

8586
{{index "documentElement property", [DOM, tree]}}
8687

87-
Le damos el nombre de _((árbol))_ a una estructura cuando tiene una estructura
88-
de ramificación, no tiene ((ciclo))s (un nodo puede no contenerse a sí mismo,
89-
directa o indirectamente), y tiene una única _((raíz))_ bien definida. En el
90-
caso del _DOM_, `document.documentElement` hace la función de raíz.
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_,
92+
`document.documentElement` hace la función de raíz.
9193

9294
{{index sorting, ["data structure", "tree"], "syntax tree"}}
9395

94-
Los árboles aparecen constantemente en las Ciencias de la computación.
95-
Además de representar estructuras recursivas como los documentos o
96-
programas HTML, también son comúnmente usados para mantener ((conjunto))s
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
9799
ordenados de datos debido a que los elementos generalmente pueden ser
98100
encontrados o agregados más eficientemente en un árbol que en un
99101
arreglo plano.
@@ -107,19 +109,20 @@ identificadores y valores son _hojas_, o nodos sin hijos.
107109

108110
{{index "body property", [HTML, structure]}}
109111

110-
Lo mismo sucede para el DOM, Los nodos para los ((elemento))s, que
111-
representan etiquetas HTML, determinan la estructura del documento.
112-
Estos pueden tener ((nodos hijos)). Un ejemplo de estos nodos es
113-
`document.body`. Algunos de estos hijos pueden ser ((nodos hoja)), como
114-
los fragmentos de ((texto)) o los nodos ((comentario)).
112+
Lo mismo sucede para el DOM, los nodos para los _((elemento))s_,
113+
los cuales representan etiquetas HTML, determinan la estructura del
114+
documento. Estos pueden tener ((nodos hijos)). Un ejemplo de estos
115+
nodos es `document.body`. Algunos de estos hijos pueden ser
116+
((nodos hoja)), como los fragmentos de ((texto)) o los nodos
117+
((comentario)).
115118

116119
{{index "text node", element, "ELEMENT_NODE code", "COMMENT_NODE code", "TEXT_NODE code", "nodeType property"}}
117120

118-
Cada nodo DOM tiene una propiedad `nodeType`, la cual contiene un
119-
código numérico que identifica el tipo de nodo. Los _Elementos_ tienen
120-
el código 1, que también es definido como la propiedad constante
121-
`Node.ELEMENT_NODE`. Los nodos de texto representan una sección de
122-
texto en el documento y obtienen el código 3 (`Node.TEXT_NODE`). Los
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
123126
comentarios obtienen el código 8 (`Node.COMMENT_NODE`).
124127

125128
Otra forma de visualizar nuestro ((árbol)) de documento es la siguiente:
@@ -138,10 +141,10 @@ padre-hijo entre los nodos.
138141
Usar códigos numéricos crípticos para representar a los tipos de
139142
nodos no es algo que se parezca al estilo de JavaScript para hacer
140143
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.
144+
de la interfaz DOM también se sienten engorrosas y alienígenas.
142145
La razón de esto es que DOM no fue diseñado solamente para
143146
JavaScript. Más bien, intenta ser una interfaz _independiente del
144-
lenguaje_ que puede ser usado en otros sistemas también, no
147+
lenguaje_ que puede ser usada en otros sistemas, no
145148
solamente para HTML pero también para ((XML)), que es un ((formato
146149
de datos)) genérico con una sintaxis similar a la de HTML.
147150

@@ -159,7 +162,7 @@ A manera de ejemplo de esta pobre integración, considera la propiedad
159162
`childNodes` que los nodos elemento en el DOM tienen. Esta propiedad
160163
almacena un objeto parecido a un arreglo, con una propiedad `length`
161164
y propiedades etiquetadas por números para acceder a los nodos hijos.
162-
Pero es una instancia de tipo `NodeList`, no es un arreglo real, por
165+
Pero es una instancia de tipo `NodeList`, no un arreglo real, por
163166
lo que no tiene métodos como `slice` o `map`.
164167

165168
{{index [interface, design], [DOM, construction], "side effect"}}
@@ -190,9 +193,9 @@ otros nodos cercanos. El siguiente diagrama los ilustra:
190193

191194
{{index "child node", "parentNode property", "childNodes property"}}
192195

193-
A pesar de que el diagrama muestra solo un enlace por tipo, cada nodo
196+
A pesar de que el diagrama muestra un solo enlace por cada tipo, cada nodo
194197
tiene una propiedad `parentNode` que apunta al nodo al que pertenece, si
195-
es que hay alguno. Igualmente, cada elemento nodo (nodo tipo 1) tiene
198+
es que hay alguno. Igualmente, cada nodo _elemento_ (nodo tipo 1) tiene
196199
una propiedad `childNodes` que apunta a un objeto similar a un arreglo
197200
que almacena a sus hijos.
198201

@@ -212,14 +215,14 @@ será `null`.
212215
{{index "children property", "text node", element}}
213216

214217
También existe una propiedad `children`, que es parecida a `childNodes`
215-
pero contiene únicamente hijos de tipo elemento (tipo 1), excluyendo
218+
pero contiene únicamente hijos de tipo _elemento_ (tipo 1), excluyendo
216219
otros tipos de nodos. Esto puede ser útil cuando no estás interesando
217220
en nodos de tipo texto.
218221

219222
{{index "talksAbout function", recursion, [nesting, "of objects"]}}
220223

221224
Cuando estás tratando con estructuras de datos anidadas como esta,
222-
las funciones recursivas son regularmente útiles. La siguiente
225+
las funciones recursivas son generalmente útiles. La siguiente
223226
función escanea un documento por ((nodos de texto)) que contengan
224227
una cadena dada y regresan `true` en caso de que encuentren una:
225228

@@ -283,14 +286,14 @@ console.log(link.href);
283286

284287
{{index "child node"}}
285288

286-
Todos los nodos que tienen un método `getElementsByTagName`, el cual
289+
Todos los nodos _elemento_ tienen un método `getElementsByTagName`, el cual
287290
recolecta a todos los elementos con un nombre de etiqueta dado que
288291
son descendientes (hijos directos o indirectos) de ese nodo y los
289292
regresa como un objeto parecido a un arreglo.
290293

291294
{{index "id attribute", "getElementById method"}}
292295

293-
Para encontrar un nodo específico, puedes otorgarle un atributo `id`
296+
Para encontrar un _único_ nodo en específico, puedes otorgarle un atributo `id`
294297
y usar `document.getElementById`.
295298

296299
```{lang: "text/html"}

0 commit comments

Comments
 (0)