You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
En el caso anterior usamos `style.background` para cambiar el color de fondo del `document.body`, sin embargo existen muchas otras propiedades, tales como:
26
26
27
27
-`innerHTML` -- contenido HTML del nodo.
28
-
-`offsetWidth` -- anchura del nodo (en píxeles).
28
+
-`offsetWidth` -- ancho del nodo (en píxeles).
29
29
- ..., etc.
30
30
31
31
Más adelante, aprenderemos otras formas de manipular el DOM, pero primero necesitamos conocer su estructura.
32
32
33
33
## Un ejemplo del DOM
34
34
35
-
Comencemos con un documento sencillo, descrito a continuación:
35
+
Comencemos con el siguiente documento simple:
36
36
37
-
```ejecuciónhtml sin formatear
37
+
```htmlrun no-beautify
38
38
<!DOCTYPE HTML>
39
39
<html>
40
40
<head>
@@ -56,8 +56,9 @@ let node1 = {"name":"HTML","nodeType":1,"children":[{"name":"HEAD","nodeType":1,
56
56
drawHtmlTree(node1, 'div.domtree', 690, 320);
57
57
</script>
58
58
59
-
```conectado
60
-
En la imagen de arriba, puedes hacer clic sobre los nodos del elemento y como resultado se expanden/colapsan sus nodos hijos.
59
+
```online
60
+
En la imagen de arriba, puedes hacer clic sobre los nodos del elemento y como resultado se expanden/colapsan sus nodos hijos.
61
+
On the picture above, you can click on element nodes and their children will open/collapse.//////////////////////////
61
62
```
62
63
63
64
Cada nodo del árbol es un objeto.
@@ -79,11 +80,11 @@ Hay solo dos excepciones de nível superior:
79
80
1. Los espacios y líneas nuevas antes de la etiqueta `<head>` son ignorados por razones históricas.
80
81
2. Si colocamos algo después de la etiqueta `</body>`, automáticamente se sitúa dentro de `body`, al final, ya que, la especificación HTML necesita que todo el contenido esté dentro de la etiqueta `<body>`, no puede haber espacios después de esta.
81
82
82
-
En otros casos todo es sencillo -- si hay espacios (como cualquier caracter) en el documento, se convierten en nodos de texto en el DOM, y si los eliminamos, entonces no habrá ninguno.
83
+
En otros casos todo es sencillo -- si hay espacios (como cualquier carácter) en el documento, se convierten en nodos de texto en el DOM, y si los eliminamos, entonces no habrá ninguno.
83
84
84
85
En el siguiente ejemplo, no hay nodos de texto con espacios en blanco:
85
86
86
-
```htmlsin formatear
87
+
```htmlno-beautify
87
88
<!DOCTYPE HTML>
88
89
<html><head><title>About elk</title></head><body>The truth about elk.</body></html>
89
90
```
@@ -96,12 +97,12 @@ let node2 = {"name":"HTML","nodeType":1,"children":[{"name":"HEAD","nodeType":1,
96
97
drawHtmlTree(node2, 'div.domtree', 690, 210);
97
98
</script>
98
99
99
-
```cabecera inteligente="Los espacios al inicio/final de la cadena y los nodos de texto que solo contienen espacios en blanco, por lo general, están ocultos en las herramientas.
100
-
Las herramientas del navegador (las veremos más adelante) que funcionan con DOM usualmente no muestran espacios al inicio/final del texto y nodos de texto vacíos (saltos de línea) entre etiquetas.
100
+
```smart header="Los espacios al inicio/final de la cadena y los nodos de texto que solo contienen espacios en blanco, por lo general, están ocultos en las herramientas.
101
+
Las herramientas del navegador (las veremos más adelante) que trabajan con DOM usualmente no muestran espacios al inicio/final del texto y nodos de texto vacíos (saltos de línea) entre etiquetas.
101
102
102
103
De esta manera, las herramientas para desarrolladores ahorran espacio en la pantalla.
103
104
104
-
En otras representaciones del DOM, las omitiremos cuando sean irrelevantes. Tales espacios generalmente no afectan la forma en la cual es mostrado el documento.
105
+
En otras representaciones del DOM, las omitiremos cuando sean irrelevantes. Tales espacios generalmente no afectan la forma en la cual el documento es mostrado.
105
106
```
106
107
107
108
## Autocorreción
@@ -110,7 +111,7 @@ Si el navegador encuentra HTML mal escrito, lo corrige automáticamente al const
110
111
111
112
Por ejemplo, la etiqueta superior siempre será `<html>`. Incluso si no existe en el documento, esta existirá en el DOM, puesto que, el navegador la creará. Sucede lo mismo con la etiqueta `<body>`.
112
113
113
-
Como ejemplo de esto, si el archivo HTML es la palabra `"Hello"`, el navegador lo envolverá con de las etiquetas `<html>` y `<body>`, y añadirá la etiqueta `<head>` la cual es requerida, basado en esto, el DOM resultante será:
114
+
Como ejemplo de esto, si el archivo HTML es la palabra `"Hello"`, el navegador lo envolverá con las etiquetas `<html>` y `<body>`, y añadirá la etiqueta `<head>` la cual es requerida, basado en esto, el DOM resultante será:
114
115
115
116
<divclass="domtree"></div>
116
117
@@ -140,12 +141,12 @@ let node4 = {"name":"HTML","nodeType":1,"children":[{"name":"HEAD","nodeType":1,
140
141
drawHtmlTree(node4, 'div.domtree', 690, 360);
141
142
</script>
142
143
143
-
````cabecera de advertencia="Las tablas siempre tienen la etiqueta `<tbody>`"
144
-
Un "caso especial" interesante son las tablas. De acuerdo a la especificación, DOM debe tener `<tbody>`, sin embargo, el texto HTML por convención puede omitir esto. Por lo tanto, el navegador crea automáticamente la etiqueta `<tbody>` en el DOM.
144
+
````warn header="Las tablas siempre tienen la etiqueta `<tbody>`"
145
+
Un "caso especial" interesante son las tablas. De acuerdo a la especificación DOM debe tener `<tbody>`, sin embargo, el texto HTML por convención puede omitir esto. Por lo tanto, el navegador crea automáticamente la etiqueta `<tbody>` en el DOM.
Hay algunos otros tipos de nodos además de elementos y nodos de texto.
167
+
Existen otros tipos de nodos además de elementos y nodos de texto.
167
168
168
169
Por ejemplo, los comentarios:
169
170
@@ -177,7 +178,7 @@ Por ejemplo, los comentarios:
177
178
*!*
178
179
<!-- comentario -->
179
180
*/!*
180
-
<li>...and cunning animal!</li>
181
+
<li>...y el astuto animal!</li>
181
182
</ol>
182
183
</body>
183
184
</html>
@@ -186,7 +187,7 @@ Por ejemplo, los comentarios:
186
187
<div class="domtree"></div>
187
188
188
189
<script>
189
-
let node6 = {"name":"HTML","nodeType":1,"children":[{"name":"HEAD","nodeType":1,"children":[]},{"name":"BODY","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"\n The truth about elk.\n "},{"name":"OL","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"\n "},{"name":"LI","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"An elk is a smart"}]},{"name":"#text","nodeType":3,"content":"\n "},{"name":"#comment","nodeType":8,"content":"comment"},{"name":"#text","nodeType":3,"content":"\n "},{"name":"LI","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"...and cunning animal!"}]},{"name":"#text","nodeType":3,"content":"\n "}]},{"name":"#text","nodeType":3,"content":"\n \n"}]}]};
190
+
let node6 = {"name":"HTML","nodeType":1,"children":[{"name":"HEAD","nodeType":1,"children":[]},{"name":"BODY","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"\n The truth about elk.\n "},{"name":"OL","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"\n "},{"name":"LI","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"An elk is a smart"}]},{"name":"#text","nodeType":3,"content":"\n "},{"name":"#comment","nodeType":8,"content":"comment"},{"name":"#text","nodeType":3,"content":"\n "},{"name":"LI","nodeType":1,"children":[{"name":"#text","nodeType":3,"content":"...y el astuto animal!"}]},{"name":"#text","nodeType":3,"content":"\n "}]},{"name":"#text","nodeType":3,"content":"\n \n"}]}]};
190
191
191
192
drawHtmlTree(node6, 'div.domtree', 690, 500);
192
193
</script>
@@ -204,13 +205,13 @@ El objeto `document` que representa todo el documento es también, formalmente,
204
205
Hay [12 tipos de nodos](https://dom.spec.whatwg.org/#node). En la práctica generalmente trabajamos con 4 de ellos:
205
206
206
207
1. `document` -- el "punto de entrada" en el DOM.
207
-
2. nodos de elementos -- Etiquetas-HTML, los bloques construcción del árbol.
208
+
2. nodos de elementos -- Etiquetas-HTML, los bloques de construcción del árbol.
208
209
3. nodos de texto -- contienen texto.
209
-
4. comentarios -- a veces podemos colocar ocasiones información allí, no se mostrará, pero JS puede leerla desde el DOM.
210
+
4. comentarios -- a veces podemos colocar información allí, no se mostrará, pero JS puede leerla desde el DOM.
210
211
211
212
## Véalo usted mismo
212
213
213
-
Para ver la estructura del DOM en tiempo real, intente [visor en vivo del DOM](http://software.hixie.ch/utilities/js/live-dom-viewer/). Simplemente escriba el documento, y se mostrará como un DOM al instante.
214
+
Para ver la estructura del DOM en tiempo real, intente [Live DOM Viewer] (http://software.hixie.ch/utilities/js/live-dom-viewer/). Simplemente escriba el documento, y se mostrará como un DOM al instante.
214
215
215
216
Otra forma de explorar el DOM es usando la herramienta para desarrolladores del navegador. En realidad, eso es lo que usamos cuando estamos desarrollando.
216
217
@@ -220,20 +221,20 @@ Debe verse así:
220
221
221
222

222
223
223
-
Puedes mirar el DOM, hacer clic sobre los elementos, ver sus detalles, etc.
224
+
Puedes ver el DOM, hacer clic sobre los elementos, ver sus detalles, etc.
224
225
225
226
Tenga en cuenta que la estructura DOM en la herramienta para desarrolladores está simplificada. Los nodos de texto se muestran como texto. Y absolutamente no hay nodos de texto con espacios en blanco. Esto está bien, porque la mayoría de las veces nos interesan los nodos de elementos.
226
227
227
228
Hacer clic en el botón <span class="devtools" style="background-position:-328px -124px"></span> ubicado en la esquina superior izquierda nos permite elegir un nodo desde la página web utilizando un "mouse" (u otros dispositivos de puntero) e "inspeccionar" (desplazarse hasta él en la pestaña elementos). Esto funciona muy bien cuando tenemmos una página HTML enorme (y el DOM correspondiente es enorme) y nos gustaría ver la posición de un elemento en particular.
228
229
229
-
Otra forma de realizarlo sería hacer clic derecho en la página web y en el menú contextual elegir la opción "inspeccionar".
230
+
Otra forma de realizarlo sería hacer clic derecho en la página web y en el menú contextual elegir la opción "Inspeccionar Elemento".
230
231
231
232

232
233
233
234
En la parte derecha de las herramientos encontramos las siguientes sub-pestañas:
234
235
- **Styles** -- podemos ver CSS aplicado al elemento actual regla por regla, incluidas las reglas integradas (gris). Casi todo puede ser editado en el lugar, incluyendo las dimensiones/márgenes/relleno de la siguiente caja.
235
236
- **Computed** -- nos permite ver cada propiedad CSS aplicada al elemento: para cada propiedad podemos ver la regla que la provee (inluida la herencia CSS y demás).
236
-
- **Event Listeners** -- nos ayuda a ver los escuchadores de eventos adjuntos a elementos del DOM (los cubriremos en la siguiente parte del tutorial).
237
+
- **Event Listeners** -- nos ayuda a ver los listener de eventos adjuntos a elementos del DOM (los cubriremos en la siguiente parte del tutorial).
237
238
- ...,etc.
238
239
239
240
La manera de estudiarlos es haciendo clic en ellos. Casi todos los valores son editables en el lugar.
0 commit comments