sábado, 28 de abril de 2018

5.01. DOM. ° Ada Lovecoder


 <head>
        <title>Document Object Model - Creación y modificación de elementos</title>
        <meta charset="UTF-8">
        <style>
            .miClase{
                color:red;
            }
        </style>
        <script>
            //window.load = inicio; // se puede cargar de las 2 formas
            window.addEventListener("load",inicio);
         
            function inicio(){
                document.getElementById("cambiarTextos").addEventListener("click",cambiarTextos);
                document.getElementById("cambiarClases").addEventListener("click",cambiarClases);
                document.getElementById("quitarClases").addEventListener("click",quitarClases);
            }
         
            function cambiarTextos(){
                //Selecciónar UN UNICO elemento según su id
                document.getElementById("parrafo1").innerHTML = "Primer párrafo cambiado";
                //Selecionar TODOS los elementos según su etiqueta
                document.getElementsByTagName("p")[1].innerHTML = "Segundo párrafo cambiado";
                //Seleccionar TODOS los elementos según su clase
                document.getElementsByClassName("miClase")[0].innerHTML = "Tercer párrafo cambiado";
                //Para seleccionar varios elemntos con el mismo nombre (Ej radio butom) se usa getElementsByName
             
                //Seleccionar un elemento dentro de otro
                var principal = document.getElementById("main");
                var parrafo1 = principal.getElementById("parrafo1");
             
                //Sleecionar el PRIMER elemento con un selector CSS
                /*document.querySelector("p.miClase");
                document.querySelector("p.miClase")[0];*/
            }
         
            function cambiarClases(){
                document.getElementById("parrafo1").setAttribute("class","miClase");
                document.getElementById("parrafo2").className = "miClase";
            }
         
            function quitarClases(){
                //document.getElementById("parrafo1").setAttribute("class","");
                 //document.getElementById("parrafo1").className = "");
                for(var i = 0; i<document.getElementsByTagName("p").length; i++){
                    document.getElementsByTagName("p")[i].className="";
                }
            }
        </script>
    </head>
    <body>
        <div id="main">
            <p id="parrafo1">Este es el primer párrafo</p>
            <p id="parrafo2">Este es el segundo párrafo</p>
            <p id="parrafo3" class="miClase">Este es el tercer párrafo</p>
        </div>
        <br/>
        <button id="cambiarTextos">Cambiar texto de párrafos</button>
        <button id="cambiarClases">Cambiar clases de párrafos</button>
        <button id="quitarClases">Quitar clases de todos los párrafos</button>
    </body>

5.02. DOM. Creación, sustitución y borrado de elementos.

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>Document Object Model</title>
    <style>
        .miClase {
            color: red;
        }
    </style>
    <script>
        window.addEventListener("load", inicio);
        function inicio() {
            document.getElementById("crearParrafo").addEventListener("click", crearParrafo);
            document.getElementById("crearImagen").addEventListener("click", crearImagen);
            document.getElementById("borrarUltimo").addEventListener("click", borrarUltimo);
            document.getElementById("borrarPrimero").addEventListener("click", borrarPrimero);
            document.getElementById("sustituirPrimeroVacio").addEventListener("click", sustituirPrimero);
        }
        function crearParrafo() {
            //Crear elemento
            var parrafo = document.createElement("p");
            //Crear texto
            var texto = document.createTextNode(document.getElementById("texto").value);
            parrafo.appendChild(texto);
            //Añadir atributos
            parrafo.setAttribute("class", "miClase");
            //parrafo.className = "miClase";
            var cont = document.getElementById("div1");
            cont.appendChild(parrafo);
        }
        function crearImagen() {
            //Crear elemento
            var imagen = document.createElement("img");
            //Añadir atributos
            var ruta = prompt("Introduce la ruta");
            imagen.setAttribute("alt", prompt("Introduce el texto alternativo"));
            imagen.src = ruta;
            var cont = document.getElementById("div1");
            cont.appendChild(imagen);
        }
        function borrarUltimo() {
            var cont = document.getElementById("div1");
            var hijo = cont.lastChild; //Seleccionar el último hijo
            //Elimina un elemento hijo
            cont.removeChild(hijo);
        }
        function borrarPrimero() {
            var cont = document.getElementById("div1");
            var hijo = cont.firstChild; //Seleccionar el primer hijo
            //Elimina un elemento hijo
            cont.removeChild(hijo);
        }
        function sustituirPrimero() {
            var cont = document.getElementById("div1");
            var parrafo = document.createElement("p").appendChild(document.createTextNode("Vacio"));
            //Sustituir un elemento
            cont.replaceChild(parrafo, cont.firstChild); //Nuevo, viejo
        }
    </script>
</head>

<body>
    <div id="div1"></div>
    <br/>
    <textarea id="texto"></textarea>
    <br/>
    <button id="crearParrafo">Crear parrafo</button>
    <button id="crearImagen">Crear imagen</button>
    <button id="borrarUltimo">Borrar ultimo</button>
    <button id="borrarPrimero">Borrar primero</button>
    <button id="sustituirPrimeroVacio">Sustituir primer párrafo por vacío</button>

</body>

</html>


Property / Method
Descripción
accessKey
Establece o devuelve el atributo accesskey de un elemento
addEventListener()
Adjunta un controlador de eventos al elemento especificado
appendChild()
Agrega un nuevo nodo secundario, a un elemento, como el último nodo secundario
attributes
Devuelve un NamedNodeMap de los atributos de un elemento
blur()
Elimina el foco de un elemento
childElementCount
Devuelve la cantidad de elementos secundarios que tiene un elemento
childNodes
Devuelve una colección de nodos secundarios de un elemento (incluidos los nodos de texto y comentario)
children
Devuelve una colección del elemento secundario de un elemento (sin incluir los nodos de texto y comentario)
classList
Devuelve el nombre (s) de clase de un elemento
className
Establece o devuelve el valor del atributo de clase de un elemento
click()
Simula un clic de mouse en un elemento
clientHeight
Devuelve la altura de un elemento, incluido el relleno
clientLeft
Devuelve el ancho del borde izquierdo de un elemento
clientTop
Devuelve el ancho del borde superior de un elemento
clientWidth
Devuelve el ancho de un elemento, incluido el relleno
cloneNode()
Clona un elemento
compareDocumentPosition()
Compara la posición del documento de dos elementos
contains()
Devuelve true si un nodo es un descendiente de un nodo, de lo contrario es falso
contentEditable
Establece o devuelve si el contenido de un elemento es editable o no
dir
Establece o devuelve el valor del atributo dir de un elemento
firstChild
Devuelve el primer nodo hijo de un elemento
firstElementChild
Devuelve el primer elemento secundario de un elemento
focus()
Da enfoque a un elemento
getAttribute()
Devuelve el valor de atributo especificado de un nodo de elemento
getAttributeNode()
Devuelve el nodo de atributo especificado
getElementsByClassName()
Devuelve una colección de todos los elementos secundarios con el nombre de clase especificado
getElementsByTagName()
Devuelve una colección de todos los elementos secundarios con el nombre de etiqueta especificado
hasAttribute()
Devuelve true si un elemento tiene el atributo especificado, de lo contrario es falso
hasAttributes()
Devuelve verdadero si un elemento tiene algún atributo, de lo contrario es falso
hasChildNodes()
Devuelve verdadero si un elemento tiene nodos secundarios, de lo contrario falso
id
Establece o devuelve el valor del atributo id de un elemento
innerHTML
Establece o devuelve el contenido de un elemento
innerText
Establece o devuelve el contenido de texto de un nodo y sus descendientes
insertAdjacentElement()
Inserta un elemento HTML en la posición especificada relativa al elemento actual
insertAdjacentHTML()
Inserta un texto con formato HTML en la posición especificada relativa al elemento actual
insertAdjacentText()
Inserta texto en la posición especificada relativa al elemento actual
insertBefore()
Inserta un nuevo nodo hijo antes de un nodo hijo especificado, existente
isContentEditable
Devuelve verdadero si el contenido de un elemento es editable, de lo contrario es falso
isDefaultNamespace()
Devuelve verdadero si un namespaceURI especificado es el predeterminado, de lo contrario falso
isEqualNode()
Comprueba si dos elementos son iguales
isSameNode()
Comprueba si dos elementos son el mismo nodo
isSupported()
Devuelve verdadero si una característica especificada es compatible con el elemento
lang
Establece o devuelve el valor del atributo lang de un elemento
lastChild
Devuelve el último nodo hijo de un elemento
lastElementChild
Devuelve el último elemento hijo de un elemento
namespaceURI
Devuelve el URI de espacio de nombre de un elemento
nextSibling
Devuelve el siguiente nodo en el mismo nivel de árbol de nodos
nextElementSibling
Devuelve el siguiente elemento en el mismo nivel de árbol de nodos
nodeName
Devuelve el nombre de un nodo
nodeType
Devuelve el tipo de nodo de un nodo
nodeValue
Establece o devuelve el valor de un nodo
normalize()
Se une a los nodos de texto adyacentes y elimina los nodos de texto vacíos en un elemento
offsetHeight
Devuelve la altura de un elemento, incluido el relleno, el borde y la barra de desplazamiento
offsetWidth
Devuelve el ancho de un elemento, incluido el relleno, el borde y la barra de desplazamiento
offsetLeft
Devuelve la posición de desplazamiento horizontal de un elemento
offsetParent
Devuelve el contenedor de desplazamiento de un elemento
offsetTop
Devuelve la posición de desplazamiento vertical de un elemento
ownerDocument
Devuelve el elemento raíz (objeto del documento) para un elemento
parentNode
Devuelve el nodo padre de un elemento
parentElement
Devuelve el nodo elemento principal de un elemento
previousSibling
Devuelve el nodo anterior en el mismo nivel de árbol de nodos
previousElementSibling
Devuelve el elemento anterior en el mismo nivel de árbol de nodos
querySelector()
Devuelve el primer elemento secundario que coincide con un selector de CSS especificado de un elemento
querySelectorAll()
Devuelve todos los elementos secundarios que coinciden con un selector de CSS específico de un elemento
removeAttribute()
Elimina un atributo especificado de un elemento
removeAttributeNode()
Elimina un nodo de atributo especificado y devuelve el nodo eliminado
removeChild()
Elimina un nodo hijo de un elemento
removeEventListener()
Elimina un controlador de eventos que se ha adjuntado con el método addEventListener ()
replaceChild()
Reemplaza un nodo hijo en un elemento
scrollHeight
Devuelve la altura completa de un elemento, incluido el relleno
scrollIntoView()
Desplaza el elemento especificado en el área visible de la ventana del navegador
scrollLeft
Establece o devuelve la cantidad de píxeles que el contenido de un elemento se desplaza horizontalmente
scrollTop
Establece o devuelve el número de píxeles que el contenido de un elemento se desplaza verticalmente
scrollWidth
Devuelve el ancho completo de un elemento, incluido el relleno
setAttribute()
Establece o cambia el atributo especificado, al valor especificado
setAttributeNode()
Establece o cambia el nodo de atributo especificado
style
Establece o devuelve el valor del atributo de estilo de un elemento
tabIndex
Establece o devuelve el valor del atributo tabindex de un elemento
tagName
Devuelve el nombre de la etiqueta de un elemento
textContent
Establece o devuelve el contenido textual de un nodo y sus descendientes
title
Establece o devuelve el valor del atributo de título de un elemento
toString()
Convierte un elemento en una cadena
<head>
    <meta charset="utf-8" />
    <title>Document Object Model</title>
    <script>
        window.addEventListener("load", inicio);
        function inicio() {
            for (var i = 0; i < document.getElementsByTagName("h2").length; i++) {
                document.getElementsByTagName("h2")[i].addEventListener("click", recorrerAdelante);
            }
        }
        function recorrerAdelante(e) {
            var texto = "";
            var h2 = e.target;
            
            texto += "Has elegido " + h2.textContent;
            //Seleccionamos el padre
            var padre = h2.parentElement;
            texto += " que está situada en el " + padre.id + "<br/>";
            //Seleccionamos el hermano
            //var ul = h2.nextSibling; //No lo utilizamos porque incluye nodos de tipo texto
            var ul = h2.nextElementSibling;
            //Mostrar el número de hijos
            //¡OJO! .childNodes incluye texto y comentarios; children no.
            texto += "El número de provincias es " + ul.children.length + ": ";
            var hijo = ul.firstChild;
            //Si quisiéramos seleccionar el último hijo, pondríamos .lastChild.
            while (hijo != null) {
                texto += " " + hijo.textContent;
                hijo = hijo.nextElementSibling;
                //Si quisiéramos seleccionar el hermano anterior, pondríamos .previousElementSibling
            }
            //Mostramos el texto
            document.getElementById("texto").innerHTML = texto;
            //Si ponemos .textContent mostraríamos texto plano, y no coge etiquetas html.
        }
    </script>
</head>

<body>
    <div id="norte">
        <h2>Galicia</h2>
        <ul id="lista">
            <li>A Coruña</li>
            <li>Lugo</li>
            <li>Ourense</li>
            <li>Pontevedra</li>
        </ul>
    </div>
    <div id="sur">
        <h2>Canarias</h2>
        <ul id="lista">
            <li>Santa Cruz de Tenerife</li>
            <li>Las Palmas</li>
        </ul>
    </div>
    <div id="texto"></div>
</body>


No hay comentarios.:

Publicar un comentario