|
|
Línea 90: |
Línea 90: |
| | | |
| {{Actividad| | | {{Actividad| |
− | Title=buscar elementos "p" de una página }} | + | Title=buscar elementos "p" de una página| |
| <source lang="javascript"> | | <source lang="javascript"> |
| //buscaremos todos los parrafos a partir del elemento document | | //buscaremos todos los parrafos a partir del elemento document |
Línea 100: |
Línea 100: |
| var parrafo = parrafos[i]; | | var parrafo = parrafos[i]; |
| } | | } |
| + | }} |
| {{Actividad| | | {{Actividad| |
− | *Vamos a hacer un programa que me muestre todos los elemntos que tiene mi págna | + | *Vamos a hacer un programa que me muestre todos los elementos que tiene mi página |
− | *Lo vamos a hacer creando una funcion}} | + | *Lo vamos a hacer creando una función |
| + | <hr /> |
| + | [[Usuario:ManuelRomero/JavaScript/dom/objetosJSCGenerales/ejemplo1|<font size=3 color=red>Solución</font>]] |
| + | }} |
| ===Accediendo y modificando sus atributos | | ===Accediendo y modificando sus atributos |
| *Una vez hemos localizado un elemento, tendremos que poder modificar desde el programa valores para que se puedan ver las acciones a realizar | | *Una vez hemos localizado un elemento, tendremos que poder modificar desde el programa valores para que se puedan ver las acciones a realizar |
Revisión de 01:52 11 mar 2016
LENGUAJE JAVASCRIPT: JavaScript un lenguaje de programación web
Programación web al lado del cliente
JavaScript Un lenguaje de script en el cliente
DOM
</div>
Qué es el DOM
- Es un estándar de la W3C.
- Es una abreviatura de HTML Document Object Model.
- Consiste en un conjunto de objetos para los html y una forma estándar para acceder y manipular las páginas (documentos html).
Puntos clave
- EL DOM nos permitirá acceder y cambiar todos los elementos de una página html
|
- HTML DOM no depende de ninguna plataforma ni lenguaje de programación determinado. DOM es una utilidad disponible también para otros lenguajes como Java y PHP.
- Alguno de los objetos son Document, Image, Body, Form, Frame, Iframe, etc.
- Cada objeto puede tener una colección de objetos asociados, unas propiedades y unos métodos.
Ejemplo: Objeto document
<html>
<body>
<img border="0" src="imagen1.gif" width="48" height="48">
<br />
<img border="0" src="imagen2.gif" width="107" height="98">
<br /><br />
<script type="text/javascript">
document.write("Este documento contiene: ")
document.write(document.images.length + " imágenes.")
</script>
</body>
</html>
Arbol de nodos
Estructura de documento html según estándar DOM
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Página sencilla</title>
</head>
<body>
<p>Esta página es <strong>muy sencilla</strong></p>
</body>
</html>
Qué se puede hacer en JavaScript
- Permite cambiar dentro de un página html
elementos
atributos
estilos css
- Pemite añadir y eliminar elementos y atributos dentro de la página
- Permite reaccionar ante cualquier evento
- Podemos crear un evento en la páǵina
El DOM como objeto
El DOM (Document Object Model) es un objeto disponible para utilizar
- Tiene una serie de métodos o funciones que puedo utilizar para hacer cosas
- Tiene una serio de propiedades o valores que puedo consultar
- A continuación vamos a ir viendo métods y propiedades y viéndo qué se puede hacer
|
Ejemplo
|
|
- Propiedades de una página que puedo saber con DOM
- Cuantos elementos html tengo
- Cuantas imágenes tengo
- Cuál es el contenido de un elemento concreto
- Cual es contenido del cuerpo de la página (body)
- Cuál es el URI del documento
|
Acceso a los nodos
Entendemos por nodo cada uno de los elementos que puedo tener en una página html
- Así por ejemplo un image es un nodo, un párrafo un formulario etc.
- Lo primero qu tenemos que hacer para poder obtener información o realizar acciones sobre un nodo es acceder a él
- A continuación vamos a ver diferentes formas de acceder a un nodo o elemento
Accedieno a nodo por document
- document.getElementById(id) encuentra el elemento a través del valor del atributo id
- document.getElementsByTagName(name) encuentra el elemento a través del tag (p, form, imge, ...)
- document.getElementsByClassName(name) encuentra el elemento a través del valor del atributo name
|
- En caso de haber muchos elementos vamos a obtener un array con todos ellos
{{Actividad|
Title=buscar elementos "p" de una página|
//buscaremos todos los parrafos a partir del elemento document
var parrafos = document.getElementsByTagName("p");
var primerParrafo = parrafos[0];
for(var i=0; i<parrafos.length; i++) {
var parrafo = parrafos[i];
}
}}
{{Actividad|
*Vamos a hacer un programa que me muestre todos los elementos que tiene mi página
*Lo vamos a hacer creando una función
<hr />
[[Usuario:ManuelRomero/JavaScript/dom/objetosJSCGenerales/ejemplo1|<font size=3 color=red>Solución</font>]]
}}
===Accediendo y modificando sus atributos
*Una vez hemos localizado un elemento, tendremos que poder modificar desde el programa valores para que se puedan ver las acciones a realizar
element= document.getElementsById("x");
*element.innerHTML = Pone un nuevo contendio en el interior del elemento html
*element.attribute = Pone un valor del atributo especificado de un elemento concreto
*element.setAttribute(attribute, value) Igual que el caso anterior
*element.style.property = new style Cambia el estilo del elementos html especificado
====Creación de nodos====
<source lang="javascript">
// Crear nodo de tipo Element
var parrafo = document.createElement("p");
// Crear nodo de tipo Text
var contenido = document.createTextNode("Hola Mundo!");
// Añadir el nodo Text como hijo del nodo Element
parrafo.appendChild(contenido);
// Añadir el nodo Element como hijo de la pagina
document.body.appendChild(parrafo);
Eliminación de nodos
var parrafo = document.getElementById("provisional");
parrafo.parentNode.removeChild(parrafo);
<p id="provisional">...</p>
Acceso directo a atributos
var enlace = document.getElementById("enlace");
alert(enlace.href); // muestra http://www...com
....
<a id="enlace" href="http://www...com">Enlace</a>
- Para obtener las propiedades CSS, mediante el atributo style:
var imagen = document.getElementById("imagen");
alert(imagen.style.margin);
....
<img id="imagen" style="margin:0; border:0;" src="logo.png" />
- Si el nombre de una propiedad CSS es compuesto, se accede a su valor modificando ligeramente su nombre:
- font-weight se transforma en fontWeight
- line-height se transforma en lineHeight
<html>
<head>
<script type="text/javascript">
function getValue()
{
var x=document.getElementById("Titulo");
alert(x.innerHTML);
}
</script>
</head>
<body>
<h1 id="Titulo" onclick="getValue()">Este es el título</h1>
<p>Pulsa en el título para que te salga una alert box con su valor.</p>
</body>
</html>
Ejemplos
<html>
<head>
<script type="text/javascript">
function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
m=checkTime(m);// add a zero in front of numbers<10
s=checkTime(s);// add a zero in front of numbers<10
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout('startTime()',500);
}
function checkTime(i)
{
if (i<10)
{
i="0" + i;
}
return i;
}
</script>
</head>
<body onload="startTime()">
<p> prueba </p>
<div id="txt"></div>
</body>
</html>