Diferencia entre revisiones de «Usuario:ManuelRomero/JavaScript/jquery/conceptosGenerales»

De WikiEducator
Saltar a: navegación, buscar
(Seleccionar elementos del DOM con JQuery)
Línea 1: Línea 1:
 
{{Usuario:ManuelRomero/JavaScript/jquery/nav}}
 
{{Usuario:ManuelRomero/JavaScript/jquery/nav}}
 
{{__TOC__}}
 
{{__TOC__}}
<br />
 
http://www.desarrolloweb.com/manuales/manual-jquery.html
 
===Qué es JQuery===
 
*Es una librería de funciones de javascript que facilita el uso de javascript
 
*Nosotros nos vamos a centrar en la parte del DOM (elementos y eventos en la página html)
 
*También se conoce como un framework, que viene siendo un  entorno para desarrollar software en un determinado lenguaje, donde se facilita al desarrollador muchas acciones  a la hora de hacer un programa.
 
 
===Para qué sirve JQuery===
 
*Para usar JQuery, hemos de conocer las tecnologías en las cuales lo vamos a utilizar
 
#HTML
 
#CSS
 
#JavaScript
 
JQuery es un entorno ligero que parte de la filosofía '''''escribe menos, haz mas'''''
 
*Cosas que se pueden hacer con JQuery:
 
Manipular la página HTML a través del DOM
 
Manipular CSS
 
Acceder y controlar los eventos de la página html
 
#Efectos y animaciones
 
#AJAX
 
#Incorporar Utilidades
 
#HTML/DOM manipulation
 
#CSS manipulation
 
#HTML event methods
 
#Effects and animations
 
#AJAX
 
#Utilities realizadas en JQuery
 
 
===Cómo usar JQuery===
 
*Para usar jquery debemos especificar el fichero donde están los fuentes de la librería
 
{{Nota|*Al final solo son una librerías de javascript que van a hacer más facil hacer ciertas tareas}}
 
*Podemos indicar dónde está el fuente en internet o descargarlo a nuestro ordenador
 
# descargarlo https://jquery.com/download/
 
# Especificar su ubucación en internet
 
Versión de producción:
 
<source lang=javascript>
 
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
 
</source>
 
Versión de desarrollo
 
<source lang=javascript>
 
<script type="text/javascript" src="jquery-1.10.2.js"></script>
 
</source>
 
 
==== Uso de un CDN ====
 
 
*También a través de un '''CDN''' (Content Delivery Network).
 
*¿Qué es un CDN? Grupo de servidores repartidos por todo el mundo en puntos estratégicos y pensados para la distribución de ficheros):
 
* CDN de Google:
 
<source lang="javascript">
 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
 
</source>
 
*CDN de Microsoft:
 
<source lang="javascript">
 
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.2.min.js"></script>
 
</source>
 
*CDN del propio jQuery:
 
: Minified:
 
<source lang="javascript">
 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
 
</source>
 
:Full:
 
<source lang="javascript">
 
<script type="http://code.jquery.com/jquery-1.10.2.js"></script>
 
</source>
 
</div>
 
 
<div class="slide">
 
 
===Sintaxis===
 
*La sintaxis de JQuery es muy sencilla
 
*La filosofía de uso es hacer una acción sobre un conjunto (1 o mas) elementos seleccionados.
 
 
*La sintaxis básica es
 
<source lang=javascript>
 
$(selector).accion();
 
</source>
 
*Donde
 
#'''''$''''' indica que vamos a acceder a la bliblioteca jQuery
 
#'''''selector''''' permitirá identificar el elemento o elementos de la página a la que nos referimos (un determando '''''id''''', elementos de tipo '''''img''''', ...
 
#'''''accion()''''' es la acción que queremos realizar (ocultar, escibir, modificar propiedades , ...)
 
 
====Especificar cuando se ejecuta====
 
*Hasta ahora la forma de asignar acciones a los eventos es ir elemento a elemento, especificando  en el atributo del evento correspondiente la acción deseada
 
*Tomemos el siguiente ejemplo
 
{{Actividad
 
|Title=saludo al hacer click en un enlace
 
|A partir de una página html que tenga un enlace, hacemos un programa javascript que la hacer click en el enlace salga un saludo con un alert en lugar de ir al enlace }}
 
<source lang=javascript>
 
<!DOCTYPE html>
 
<html lang="en">
 
 
<head>
 
    <meta charset="utf-8">
 
    <title>Hola Mundo con jquery</title>
 
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
 
  <!-- <script src="jquery-1.10.2.min.js"></script> -->
 
    <script>
 
    function saluda(elEventoClick){
 
            alert("Hola Mundo");
 
            elEventoClick.preventDefault();
 
    }
 
    </script>
 
</head>
 
<body>
 
    <a href="http://jquery.com/" onclick="saluda(event);">jQuery</a>
 
</body>
 
</html>
 
</source>
 
}}
 
{{Actividad|
 
Title=Comentado el código
 
|
 
<source lang=javascript>
 
<a href="http://jquery.com/" onclick="saluda(event);">jQuery</a>
 
</source>
 
;Observa cómo se pasa como argumento a la función <i><u>saluda</u></i> el propio evento que se genera al hacer un click en el enlace
 
<hr />
 
<source lang=javascript>
 
    function saluda(elEventoClick){
 
            alert("Hola Mundo");
 
            elEventoClick.preventDefault();
 
    }
 
</source>
 
;esta función recibe el evento en una variable llamada elEventoClick, parámetro de la función
 
;Lo que hago es usar un método de ese objeto para anular la acción básica que es ir al enlace especificado en el atributo href del elemento a
 
}}
 
*Otra forma de asignar código a un  a un  elemento es hacerlo todo desde el script. Es decir asignar a '''''un envento''''' a un elemento o grupo de elementos concretos una acción concreta.
 
<source lang=javascript>
 
// ....
 
document.getElementById("holamundo").onclick = holaMundo;
 
// ...
 
function holaMundo()
 
  {
 
  alert ("Hola Mundo");
 
  return false;
 
  }
 
</source>
 
*Es importante ver lo peculiar del código anterior.
 
{{Actividad
 
|Title=Asignando el nombre de una función
 
|
 
;En javascipt puedo asignar  el nombre de una función a una variable
 
*En este caso no hace falta asignar paréntensis
 
*Es como si estuviéramos creando un alias o asignando a una  variable el código de una función (Concepto de funciones anónimas)
 
*Cuando escriba en nombre de la variable, se ejecuta la función
 
}}
 
{{Actividad|
 
Title "Asignano funciones a variables"
 
|Asignar a  una variable la función saludar, la cual saque un mensaje por pantalla mediante un alert
 
}}
 
*Pero ahora nos queda el tema de cuando asignar este código.
 
*Debemos de hacerlo una vez que se haya cargado todo la página.
 
*Si queremos hacerlo escribiendo el código en la cabecera, podemos usar el evento de que la página se haya cargado
 
===== Momento de Ejecución del código Javascript =====
 
* Cuando la página se ha cargado.
 
<source lang="javascript">
 
window.onload = function(){ /*Aquí viene mi código de javascript*/ }
 
</source>
 
* ¿Por qué? No se puede ejecutar hasta que el DOM se haya cargado completamente
 
* Desventaja: Habrá que esperar la carga completa de imágenes y anuncios para su ejecución, que requieren más tiempo.
 
</div>
 
<div class="slide">
 
{{Actividad|
 
Title=Hola Mundo mediante javascript|
 
* Crea una página web con un enlace que muestre un alert con el texto "Hola Mundo" y que "anule" el enlace.
 
<source lang="html4strict">
 
<!DOCTYPE html>
 
<html>
 
<head>
 
  <meta charset="utf-8">
 
  <title>Hola Mundo en javaScript</title>
 
  <script type="text/javascript">
 
  window.onload = function() {
 
  document.getElementById("holamundo").onclick = holaMundo;
 
  }
 
  function holaMundo()
 
  {
 
  alert ("Hola Mundo");
 
  return false;
 
  }
 
  </script>
 
</head>
 
<body>
 
  <a id="holamundo" href="http://jquery.com/">jQuery</a>
 
</body>
 
</html>
 
</source>
 
}}
 
</div>
 
<div class="slide">
 
==== Momento de Ejecución del código jQuery ====
 
* Cuando el documento (DOM) esté preparado para ser manipulado.
 
* Antes de que se carguen imágenes o anuncios.
 
* ¡Ojo al efectuar acciones sobre imágenes si no están todavía cargadas!
 
 
<source lang="javascript">
 
 
$(document).ready(function(){
 
  // Aquí viene mi código jQuery
 
});
 
</source>
 
</div>
 
<div class="slide">
 
{{Actividad|
 
Title=Hola Mundo mediante jQuery|
 
* Descarga una versión de jQuery e inserta las siguientes instrucciones de jQuery:
 
 
<source lang="html4strict">
 
$("a").click(function(event) {
 
alert("Hola Mundo");
 
event.preventDefault();
 
});
 
</source>
 
*Resultado actividad:
 
<source lang="html4strict">
 
<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
<meta charset="utf-8">
 
<title>Hola Mundo con jquery</title>
 
<script src="jquery-1.10.2.min.js"></script>
 
<script>
 
$(document).ready(function() {
 
$("a").click(function(event) {
 
alert("Hola Mundo");
 
event.preventDefault();
 
});
 
});
 
</script>
 
</head>
 
<body>
 
<a href="http://jquery.com/">jQuery</a>
 
</body>
 
</html>
 
</source>
 
}}
 
</div>
 
<div class="slide">
 
  
 
====Seleccionar elementos del DOM con JQuery====
 
====Seleccionar elementos del DOM con JQuery====

Revisión de 21:58 8 abr 2016


Seleccionar elementos del DOM con JQuery

  • Como ya hemos visto la acción de selección empieza por $(), y entre paréntesis se especifica la selección que se desea realizar
  • La selección se puede hacer por los siguientes criterios
  1. nombre
  2. id
  3. clases
  4. tipos
  5. atributos
  6. valores de atributos
  7. otros mas
  • Ahora vamos a ver unos ejemplos

$(selector).action()

  • $: Simbolo para definir JQuery (podríamos usar también JQuery)
selector: Consulta sobre los elementos HTML (sintaxis muy similar a CSS)
action: Acción que se ejecuta sobre los elementos
  • Ejemplos:
$(this).hide() 		//oculta el elemento actual
$("p").hide() 		//oculta todos los elementos de tipo párrafo
$("p.test").hide() 	//oculta todos los párrafos con class=test
$("#test").hide() 	//oculta todos los elementos con id=test

</div>

  • En este enlace puedes ver una lista mas elaborada de ejemplos
http://www.w3schools.com/jquery/jquery_ref_selectors.asp

Seleccionando elementos del DOM con JQuery

Todos los elementos del documento
$("*");
Selección por nombre de elemento o nodo
  • Los elementos concretos de un determinado tipo. Selección por nombre de elemento o nodo
//todos los párrafos
$("p");
//todas las imagenes
$("img");
//todas los formularios
$("form")
Selección por id
  • En esta selección debemos anteponer el # al valor del id seleccionado
<h1 id="titulo"> .. </h1>
...
$("#titulo")
//Seleccionaría el elemento titulo
Selección por class
  • En este caso ante del valor de la clase se pone un . (punto) .
<h1 id="titulo" class="principal">  .. </h1>
...
$(".principal")
//Seleccionaría el elemento h1 cuya clase es principal
Selección de elementos que tengan un atributo definido
  • Para ello se especifica el atributo entre corchetes [] .
<h1 id="titulo" class="principal" name="nombreTitulo1">  .. </h1>
<h2 id="titulo2" class="segunda" name="nombreTitulo2">  .. </h1>
...
$("[name]")
//Seleccionaría los elementos que tengan definido el atributo name independientemente del valor
elementos que tengan un atributo con un determinado valor $("[atributo=valor]")
  • En este caso se especifica el valor esperado del atributo
<h1 id="titulo" class="principal" name="nombreTitulo1">  .. </h1>
<h2 id="titulo2" class="segunda" name="nombreTitulo2">  .. </h1>
...
$("[name=nombreTitulo1]")
//Seleccionaría los elementos que tengan definido el atributo name con el valor especificado.
 
 
 
;Ejemplos
<source lang="javascript">
$("p")  //se seleccionan todos los elementos de tipo párrafo
$("p.intro")  //todos los párrafos con class=intro
$("p#demo")  //todos los párrafos con id=demo
$("[href]") //todos los elementos con atributo href
$("[href='#']") //todos los elementos con atributo href="#"
$("[href!='#']")  //todos los elementos con atributo href diferente de "#"
$("[href$='.jpg']") //todos los elmentos con atributo href que acabe en .jpg
$("p").css("background-color","yellow"); //modificamos el background-color de todos los párrafos a amarillo
$("p#intro:first") 	//El primer párrafo con id="intro"
$("ul li:first") 	El primer elemento <li> de cada <ul>
$("div#intro .head") //Todos los elementos con class="head" dentro de un <div> con id="intro"


Icon activity.jpg

Dado el siguiente código oculta todos los elementos

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("selector").hide();
});
</script>
</head>
<body>
 
<h2>This is a heading</h2>
 
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
 
</body>
</html>






Icon activity.jpg

Oculta el elemento con id=test.

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("selector").hide();
});
</script>
</head>
<body>
 
<p>This is a paragraph.</p>
<p id="test">This is a paragraph with id="test".</p>
 
</body>
</html>






Icon activity.jpg

Oculta todos los elementos del documento

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("selector").hide();
});
</script>
</head>
<body>
 
<h1>This is a heading</h1>
<h2>This is another heading</h2>
 
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
 
<div>This is a div element.</div>
<button>This is a button</button>
 
</body>
</html>






Icon activity.jpg

Oculta los elementos con un atributo href

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("selector").hide();
});
</script>
</head>
<body>
 
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<a href="http://www.w3schools.com/html/">HTML Tutorial</a>
<a href="http://www.w3schools.com/css/">CSS Tutorial</a>
 
</body>
</html>






Icon activity.jpg

Oculta todas las filas pares de la tabla

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("selector").hide();
});
</script>
</head>
<body>
 
<table border="1">
  <tr>
    <th>Company</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Berglunds snabbköp</td>
    <td>Sweden</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Mexico</td>
  </tr>
  <tr>
    <td>Ernst Handel</td>
    <td>Austria</td>
  </tr>
  <tr>
    <td>Island Trading</td>
    <td>UK</td>
  </tr>
</table>
 
</body>
</html>





Acciones con html

Manipulación del contenido html

  • Cambia el contenido del elemento/s html seleccionado/s:
$(selector).html(contenido)
  • Añaden contenido en el elemento HTML seleccionado:
$(selector).append(content)
$(selector).prepend(content)
  • Añaden contenido después o antes del elemento HTML seleccionado:
$(selector).after(content)
$(selector).before(content)

Aplicando efectos con JQuery

Encadenando métodos en JQuery

Dom y JQuery; Modificando elemntos

Dom y JQuery; Accediendo a los atributos

JQuery y CSS

JQuery y Formularios

JQuery y Eventos

JQuery Validando formularios con plugin

==== JQueryUI: Interfaz gráfico con JQuery====