Documente Academic
Documente Profesional
Documente Cultură
Las facilidades que nos ofrece jQuery son, entre otras, las siguientes:
Acceder a elementos en un documento de forma sencilla: Sin una librera javascript
, se tienen que escribir muchas lneas de cdigo para recorrer el rbol DOM.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 4
Modificar la apariencia de una pgina Web: jQuery puede cambiar las clases o propi
edades de estilo CSS individual aplicadas a una parte del documento, incluso des
pus de que se haya mostrado la pgina.
Alterar el contenido de un documento: El texto se puede cambiar, las imgenes se p
ueden insertar o cambiar, las listas se pueden reordenar, o toda la estructura d
el HTML se puede volver a escribir y ampliar.
Responder a la interaccin de un usuario: jQuery ofrece una forma elegante de inte
rceptar una amplia variedad de eventos, sin la necesidad de saturar el propio cdi
go html con manejadores de evento.
Animar cambios realizados a un documento: Un diseador debe tambin proporcionar fee
dback visual al usuario. La biblioteca jQuery facilita esto al proporcionar una
tabla de efectos, como desvanecerse, as como un conjunto de herramientas para dis
ear nuevos efectos.
Recuperar informacin de un servidor sin refrescar una pgina: jQuery simplifica el
uso de las peticiones Ajax para obtener contenidos del servidor sin necesidad de
recargar la pgina.
Resolver los conflictos entre navegadores: Histricamente uno de los principales i
nconvenientes que nos encontrbamos al trabajar con javascript y css, eran las inc
ompatibilidades que tienen estos lenguajes entre distintos navegadores. Cuando u
tilizamos jQuery, estas incompatibilidades se resuelven a nivel interno, por lo
tanto, en la mayora de los casos, podemos olvidarnos de ellas.
Siempre trabajar con conjuntos (iteracin implcita): Cuando le decimos a jQuery, enc
uentra todos los elementos con la clase .colapsable y ocltalos , no hay necesidad d
e pasar un bucle por cada elemento devuelto. En su lugar, los mtodos jQuery se di
sean para trabajar automticamente sobre conjuntos de objetos en lugar de elementos
individuales.
Permitir mltiples acciones en una lnea (encadenamiento o chaining): Para evitar el
uso excesivo de variables temporales, jQuery emplea un patrn de programacin denom
inado encadenamiento para la mayora de sus mtodos. Esto significa, que el resultad
o de la mayora de operaciones en un objeto, es el objeto en s mismo, listo para la
siguiente accin que se le va a aplicar.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 5
Es fcil olvidar que jQuery es una librera javascript. Despus de trabajar con la lib
rera una cantidad de tiempo considerable, jQuery nos hace pensar que utilizamos u
n lenguaje propio, pero debemos tener claro que no nos ofrece ninguna nueva func
ionalidad. Lo que nos va a permitir jQuery, es hacer, de forma sencilla, cosas q
ue nos resultaran muy complicadas de programar, si no utilizramos una librera.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 6
3. Comenzando a trabajar con jQuery
Descargar la librera
La librera jQuery es un archivo javascript, al cual, podemos acceder de dos forma
s:
Descargando el fichero jQuery.js y alojarlo localmente en nuestro sitio Web. Par
a ello, iremos a la pgina http://www.jquery.com. En esta pgina encontraremos dos v
ersiones de la misma librera: una versin para produccin que est comprimida y optimiz
ada para obtener la mayor velocidad de descarga posible y una versin de desarroll
o que podremos depurar en caso de ser necesario. Una vez descargada la versin cor
respondiente de la librera, la asociaremos a nuestros documentos html cmo se ver en
el siguiente punto.
Usar una versin alojada en un CDN (content delivery network), por ejemplo, la ver
sin alojada en el CDN de Google o en la propia web de jQuery. En este caso, indic
aremos la url correspondiente a la versin de la librera que queremos utilizar. En
los siguientes enlaces podemos ver las libreras jQuery alojadas en google y en la
Web de jQuery:
o https://developers.google.com/speed/libraries/devguide#jquery
o http://code.jquery.com/
Lo ms recomendable es utilizar una versin local mientras estamos en desarrollo. En
la versin de produccin puede ser interesante utilizar una versin alojada en un sit
io externo, sobre todo, si el ancho de banda del que dispone nuestro servidor, e
s limitado.
Incluir la librera jQuery en nuestra pgina Web
Para incluir la librera jQuery en nuestra pgina, por ejemplo, utilizando el CDN de
jQuery, debemos introducir el siguiente cdigo dentro del <head>:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.min.js">
</script>
Debemos asegurarnos de dos cosas:
Antes de incluir la librera jQuery, debemos haber incluido todos los ficheros de
hojas de estilo que vayamos a utilizar. De esta forma, nos aseguraremos
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 7
de que cuando el DOM haya terminado de cargarse, ya estn todos los estilos aplica
dos.
Cualquier fichero javascript que vaya a utilizar la librera jQuery, debe incluirs
e en la pgina despus de esta librera.
Segn lo anterior, el orden de los archivos vinculados a nuestra pgina debe ser el
siguiente: primero vincularemos las hojas de estilo, a continuacin, vincularemos
la librera jQuery, y finalmente, vincularemos todos los archivos javascript que v
ayamos a utilizar.
Siempre deberamos incluir un doctype en nuestros documentos HTML. Si no incluimos
un doctype podemos encontrarnos con muchos inconvenientes, como por ejemplo, qu
e no podremos validar el documento para verificar si tenemos algn error de sintax
is. Adems, jQuery puede no funcionar correctamente si no existe un doctype en la
pgina.
Para simplificar, a lo largo de este curso, utilizaremos el doctype de html 5:
<!DOCTYPE html>
El siguiente ejemplo, es un documento html bsico en el que podemos ver como se in
cluye la librera jQuery, se vinculan antes las hojas de estilos y despus el resto
de ficheros javascript. Adems se utiliza el doctype de html 5:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo incluir librera jQuery en local</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<link href="css/global.css" rel="stylesheet"/>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/otrosJavascript.js" type="text/javascript">
</script>
</head>
<body>
</body>
</html>
Ejemplo 1: documentoBasico1.html
Si en lugar de utilizar la librera alojada localmente, queremos utilizar la versin
alojada en la web de jQuery, el documento bsico quedara de la siguiente forma:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo incluir librera jQuery de CDN</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<link href="css/global.css" rel="stylesheet"/>
<script src="http://code.jquery.com/jquery-1.9.0.min.js" type="text/javascript">
</script>
jQuery Tema 1. Introduccin a jQuery. Selectores
$(document).ready(function()
{
alert("El DOM est cargado y preparado");
});
</script>
</head>
<body>
</body>
</html>
Ejemplo 3: documentReady.html
En el ejemplo, lo que hacemos en primer lugar es seleccionar el documento:
$(documento)
A continuacin, asociamos con el evento ready del documento, la funcin que queremos
que se ejecute cuando el DOM se haya cargado. En este caso, hemos utilizado una
funcin annima, que definimos dentro de la propia asociacin del evento.
La funcin window.load de javascript es parecida al document.ready de jQuery, pero
esta ltima tiene una serie de ventajas:
La funcin window.load se ejecuta cuando la pgina est completamente cargada, por lo
tanto, espera a que los objetos grficos y dems elementos externos estn descargados.
document.ready, por su parte, slo espera a que el DOM est cargado, pero no espera
a que los elementos externos se hayan descargado.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 11
Uno de los grandes problemas de la funcin window.load de javascript, es que si le
asignamos dos funciones distintas en dos partes de cdigo diferentes, la segunda
sobrescribir a la primera. En jQuery la funcin document.ready aade funciones al eve
nto, pero no sustituye las anteriores, por lo tanto, podemos invocarla las veces
que necesitemos y todas las funciones que aadamos, se ejecutarn cuando la pgina es
t lista.
Este evento .ready() slo puede asociarse al objeto document, por lo tanto, es muy
habitual utilizar un cdigo equivalente simplificado, en el que se omiten las pal
abras document.ready. El siguiente ejemplo es equivalente al anterior:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo document.ready simplificado</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script
src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
alert("El DOM est cargado y preparado");
});
</script>
</head>
<body>
</body>
</html>
Ejemplo 4: documentReadySimplificado.html
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 12
5. Selectores
Los selectores son los pilares bsicos de jQuery. Cualquier cosa que queramos hace
r que necesite manipular el DOM, necesitar la incorporacin de un selector. Esto es
as, porque necesitamos elegir qu elementos del DOM queremos manipular.
jQuery trabaja con selectores utilizados comnmente en css o en xpath, por lo que,
deberamos estar familiarizados con ellos. Entender el funcionamiento de los sele
ctores, es fundamental para sacarle el mayor partido a la librera.
<body>
<h1>Ttulo</h1>
<p>prrafo de texto</p>
</body>
</html>
Ejemplo 6: selectorEtiqueta.html
Seleccionar elementos utilizando el ID
El selector de ID permite seleccionar un elemento de la pgina a travs del valor de
su atributo id. Este tipo de selectores slo seleccionan un elemento de la pgina,
ya que, el valor del atributo id no se puede repetir en dos elementos diferentes
de una misma pgina.
Se utiliza el smbolo #? como prefijo del id para que jQuery identifique un selecto
r de este tipo. Internamente se utiliza la funcin javascript getElementById(). En
el siguiente ejemplo, se oculta el elemento cuyo id es #parrafo:
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 14
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo selector id</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("#parrafo").css("display", "none");
});
</script>
</head>
<body>
<h1>Ttulo</h1>
<p id="parrafo">prrafo de texto</p>
</body>
</html>
Ejemplo 7: selectorId.html
Seleccionar elementos por clase
Selecciona todos aquellos elementos de la pgina que tengan aplicado el estilo de
clase indicado en el selector. Al igual que en css, para indicar un selector de
clase tendremos que poner un .? como prefijo. Internamente se utiliza la funcin ja
vascript getElementsByClassName().
En el ejemplo, vamos a cambiar varias propiedades css en una sola instruccin, por
lo que, tendremos que aadir las llaves { y }? en la llamada:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo selector clase</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$(".titulo").css(
{"padding":"5px", "border":"1px solid #ccc","width": "150px"}
);
});
</script>
</head>
<body>
<h1 class="titulo">Ttulo</h1>
<p id="parrafo">prrafo de texto</p>
</body>
</html>
Ejemplo 8: selectorClase.html
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 15
De esta forma, el mtodo .css() funcionar como si estuviramos definiendo la regla de
estilo en el documento css.
Combinar selectores
En ocasiones tenemos elementos que tienen ms de un estilo de clase aplicado. Nos
puede interesar seleccionar slo aquellos elementos que tienen aplicados varios es
tilos de clase. Esto lo haremos indicando en el selector las clases que nos inte
resan, una a continuacin de la otra y con su correspondiente .? delante (no separa
remos las clases con espacios). Del mismo modo, nos puede interesar seleccionar
aquellos elementos que son de un tipo (etiqueta) determinado y pertenecen a una
clase.
En el siguiente ejemplo, se ocultarn aquellos elementos que sean de la clase libr
o e inactivo y se cambiar el alto de lnea para los <li> que sean de la clase libro
:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo selectores combinados</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$(".libro.inactivo").css("display","none");
$("li.libro").css("line-height", "3em");
});
</script>
</head>
<body>
<h1>Lista de libros</h1>
<ul>
<li class="libro">La isla del tesoro</li>
<li class="libro">Los miserables</li>
<li class="libro inactivo">El traidor</li>
<li class="libro">Cancin de cuna</li>
</ul>
</body>
</html>
Ejemplo 9: selectoresCombinados.html
Seleccionar elementos que sean descendientes directos de otros elementos
Podemos seleccionar un elemento que es hijo directo de otro elemento. Lo indicar
emos mediante el signo >?. Veamos el siguiente ejemplo:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo selectores hijos directos</title>
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 16
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("p > span").css("color", "red");
});
</script>
</head>
<body>
<p>El texto <span>rojo</span> lo marco con span </p>
<p><strong><span>Esto no es rojo</span></strong></p>
</body>
</html>
Ejemplo 10: selectoresHijosDirectos.html
En el ejemplo anterior, el selector p > span se interpreta como cualquier element
o <span> que sea hijo directo de un elemento <p> , por lo que el primer elemento <
span> cumple la condicin del selector. Sin embargo, el segundo elemento <span> no
la cumple porque es descendiente, pero no es hijo directo de un elemento <p>.
Seleccionar elementos que son descendientes de otros elementos
Hemos visto en el ejemplo anterior, que slo se seleccionaban los descendientes di
rectos de un elemento, pero qu ocurre si nos interesa seleccionar todos los descen
dientes, y no slo los directos? En ese caso, utilizaremos el selector descendente
.
Veamos el ejemplo anterior, pero utilizando el selector descendente, en lugar de
l selector de hijos:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo selectores descendientes</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("p span").css("color", "red");
});
</script>
</head>
<body>
<p>El texto <span>rojo</span> lo marco con span </p>
<p><strong><span>Esto no es rojo</span></strong></p>
</body>
</html>
Ejemplo 11: selectorDescendientes.html
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 17
Con el selector descendente se aplica a todos los elementos <span> que se encuen
tran dentro de elementos <p>. Por lo tanto, en este caso, al contrario que en el
anterior, los estilos del selector se aplican a los dos <span>.
Agrupar selectores
En ocasiones nos puede interesar seleccionar mltiples tipos de elementos, los cua
les podran ser una combinacin de clases, ids, etiquetas, etc. Podemos aadir mltiples
elementos al selector creando una lista de los mismos, para ello, los separarem
os por comas.
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo selectores agrupados</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("h1, .parrafo, #destacado, p > span").css("color", "red");
});
</script>
</head>
<body>
<h1>Ttulo principal</h1>
<p class="parrafo">texto destacado</p>
<p>El texto <span>rojo</span> lo marco con span </p>
<p><strong id="destacado">Esto s es rojo</strong></p>
</body>
</html>
Ejemplo 12: selectoresAgrupados.html
En el ejemplo, todas las etiquetas <h1>, todos los elementos que sean de la clas
e .parrafo, el elemento con id #destacado y todos los <span> que sean descendent
es directos de una etiqueta <p>, tendrn la fuente de color rojo.
Selector adyacente
El selector adyacente utiliza el signo +? y su sintaxis es: elemento1 + elemento2
. La explicacin del comportamiento de este selector no es sencilla, ya que selecc
iona todos los elementos de tipo elemento2, que cumplan las dos siguientes condi
ciones:
elemento1 y elemento2 deben ser hermanos, por lo que su elemento padre debe ser
el mismo.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 18
elemento2 debe aparecer inmediatamente despus de elemento1 en el cdigo HTML de la
pgina.
Observemos el siguiente ejemplo:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo selector adyacente</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("h1+h2").css("color", "red");
});
</script>
</head>
<body>
<h1>Titulo1</h1>
<h2>Subttulo</h2>
<p>texto del subttulo</p>
<h2>Otro subttulo</h2>
</body>
</html>
Ejemplo 13: selectorAdyacente.html
Los estilos del selector h1+h2 se aplican al primer elemento <h2> de la pgina, pe
ro no al segundo <h2>, ya que:
El elemento padre de <h1> es <body>, el mismo padre que el de los dos elementos
<h2>. As, los dos elementos <h2> cumplen la primera condicin del selector adyacent
e.
El primer elemento <h2> aparece en el cdigo html justo despus del elemento <h1>, p
or lo que, este elemento <h2> tambin cumple la segunda condicin del selector adyac
ente.
Por el contrario, el segundo elemento <h2> no aparece justo despus del elemento <
h1>, por lo que, no cumple la segunda condicin del selector adyacente y, por tant
o, no se le aplican los estilos de h1+h2.
Filtros jQuery
Los filtros jQuery nos permiten refinar los elementos que estamos seleccionando.
Por ejemplo, nos puede interesar seleccionar las filas pares o impares de una t
abla, el primer elemento de una lista, etc. Para poder hacer esto utilizando sel
ectores css, tendramos que aplicar estilos de clase a los elementos que queremos
seleccionar, lo cual puede ser muy tedioso, si la pgina la generamos
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 19
dinmicamente. Utilizando filtros jQuery, estas selecciones las haremos de forma m
uy cmoda.
Un filtro se define con dos puntos :? y a continuacin la palabra que define el tip
o de filtro que queremos aplicar. Por ejemplo:
:filter
A continuacin, veremos una tabla con los filtros disponibles en jQuery. Algunos d
e estos filtros estn disponibles a partir de la aparicin de la pseudo-clase corres
pondiente en el CSS 3. El inconveniente es que la versin 3 de CSS, slo est disponib
le en los navegadores ms modernos (para ver el porcentaje de compatibilidad con C
SS 3 del navegador que utilizamos, podemos ir a la pgina http://css3test.com). En
la tabla se indica si el filtro es de CSS 3. Filtro Funcionamiento CSS3
:even y :odd
Selecciona los tems pares o impares en base a su ndice
:header Selecciona elementos que son etiquetas h1, h2, h3, etc.
:not
Selecciona elementos que no coinciden con el selector especificado
SI :eq(ndice) Selecciona los elementos que coinciden con el ndice
:gt(ndice)
Selecciona elementos mayores que el ndice
:lt(ndice) Selecciona elementos menores que el ndice
:first-child, :last-child
Selecciona los elementos hijos primero o ltimo
SI :only-child Selecciona los que sean hijos nicos SI
:nth-child(ndice)
Selecciona el hijo correspondiente al ndice indicado
SI :has(p) Selecciona los elementos que contienen otro elemento
:contains( texto?)
Selecciona los elementos que contengan el texto especificado
:empty Selecciona los elementos que estn vacos SI
:parent
Selecciona el elemento padre
:hidden Selecciona los elementos ocultos
:visible
Selecciona los elementos visibles
:animated Selecciona los elementos que estn en proceso de animacin
Tabla 1: Filtros jQuery
Para entender mejor el funcionamiento, veremos a continuacin algunos ejemplos de
uso de filtros.
Tablas tipo cebra
Para facilitar la lectura de los datos de una tabla, es muy habitual aadir un col
or de fondo diferente a las filas pares e impares (observar la tabla anterior).
Para hacer esto con jQuery utilizaremos los filtros :even y :odd.
<!DOCTYPE html>
<html>
<head>
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 20
<title>Filtros odd y even</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$('tr:even').css('background','#dedede');
$('tr:odd').css('background','#ffffff');
});
</script>
</head>
<body>
<table>
<tr>
<th>Producto</th><th>Descripcin</th><th>Precio</th>
</tr>
<tr>
<td>Estuche de pinturas</td>
<td>Pinturas de varios colores</td>
<td>18,99 </td>
</tr>
<tr>
<td>Comps</td>
<td>De diferentes tamaos</td>
<td>16,99 </td>
</tr>
<tr>
<td>Folios</td>
<td>Paquete de 500 folios</td>
<td>5,99 </td>
</tr>
<tr>
<td>Cartulina</td>
<td>Tamao din A2</td>
<td>2,99 </td>
</tr>
</table>
</body>
</html>
Ejemplo 14: filtrosOddEven.html
Primer y ltimo elemento de una lista
Si queremos seleccionar el primer y/o ltimo elemento de un conjunto de elementos
del DOM, seleccionados mediante un selector, podemos utilizar los filtros :first
y :last.
<!DOCTYPE html>
<html>
<head>
<title>filtros first y last</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style>
ul { width:200px;font-family:arial; }
ul li a { text-decoration:none; }
</style>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 21
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$('ul li:first').css('border-top','1px solid red');
$('ul li:last').css('border-bottom','1px solid red');
});
</script>
</head>
<body>
<div id='menu'>
<ul>
<li><a href='/index'>Home</a></li>
<li><a href='/about'>About Us</a></li>
<li><a href='/customer-service'>Customer Service</a></li>
<li><a href='/contact'>Contact Us</a></li>
<li><a href='/coupons'>Coupons</a></li>
</ul>
</div>
</body>
</html>
Ejemplo 15: filtrosFirstLast.html
Elementos que contienen un elemento especfico
Podemos necesitar seleccionar elementos que contengan un elemento especfico dentr
o de ellos. En estos casos, podemos usar el filtro :has(). No es necesario que e
l elemento hijo, sea hijo directo, bastar con que sea descendiente.
En el siguiente ejemplo, se mostrar el texto subrayado en todos aquellos <div> qu
e contengan algn elemento enfatizado (etiqueta <strong>).
<!DOCTYPE html>
<html>
<head>
<title>filtro has()</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$('div:has(strong)').css('text-decoration','underline');
});
</script>
</head>
<body>
<div>
<p>Este est <strong>resaltado</strong></p>
</div>
<div>
<p>Este no est resaltado</p>
</div>
</body>
</html>
Ejemplo 16: filtroHas.html
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 22
Seleccionar elementos vacos
Para seleccionar elementos que no contengan nada dentro usaremos el filtro :empt
y.
En el siguiente ejemplo, se pondr un borde rojo alrededor de las celdas de la tab
la que estn vacas:
<!DOCTYPE html>
<html>
<head>
<title>Filtros empty</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$('td:empty').css('border','2px dotted red');
});
</script>
</head>
<body>
<table>
<tr>
<th>Producto</th><th>Descripcin</th><th>Precio</th>
</tr>
<tr>
<td>Estuche de pinturas</td>
<td>Pinturas de varios colores</td>
<td>18,99 </td>
</tr>
<tr>
<td>Comps</td>
<td>De diferentes tamaos</td>
<td></td>
</tr>
<tr>
<td>Folios</td>
<td>Paquete de 500 folios</td>
<td>5,99 </td>
</tr>
<tr>
<td>Cartulina</td>
<td>Tamao din A2</td>
<td>2,99 </td>
</tr>
</table>
</body>
</html>
Ejemplo 17: filtroEmpty.html
Seleccionar elementos segn el texto que contengan
Podemos seleccionar los elementos en funcin de su contenido. Para ello, usaremos
el filtro :contains.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 23
En el siguiente ejemplo, se seleccionarn las celdas de la tabla que contengan el
texto
?:
<!DOCTYPE html>
<html>
<head>
<title>Filtro contains</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("td:contains(' ')").css('border','2px dotted red');
});
</script>
</head>
<body>
<table>
<tr>
<th>Producto</th><th>Descripcin</th><th>Precio</th>
</tr>
<tr>
<td>Estuche de pinturas</td>
<td>Pinturas de varios colores</td>
<td>18,99 </td>
</tr>
<tr>
<td>Comps</td>
<td>De diferentes tamaos</td>
<td>9,45 </td>
</tr>
<tr>
<td>Folios</td>
<td>Paquete de 500 folios</td>
<td>5,99 </td>
</tr>
<tr>
<td>Cartulina</td>
<td>Tamao din A2</td>
<td>2,99 </td>
</tr>
</table>
</body>
</html>
Ejemplo 18: filtroContains.html
Selector de atributos
El ltimo tipo de selectores avanzados lo forman los selectores de atributos, que
permiten seleccionar elementos HTML en funcin de sus atributos y/o valores de eso
s atributos.
A continuacin, veremos una tabla donde se muestran los distintos tipos de selecto
res de atributo existentes:
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 24
Selector Funcionamiento
$( [atributo]?)
Selecciona los elementos que tienen establecido el atributo, independientemente
de su valor. $( [atributo*= texto ]?) Selecciona los elementos que tienen establecido
el atributo y su valor contiene el texto indicado.
$( [atributo|= texto ]?)
Selecciona los elementos que tienen establecido el atributo y su valor es una se
rie de palabras separadas con guiones, pero que comienza con texto. Este tipo de
selector slo es til para los atributos de tipo lang que indican el idioma del con
tenido del elemento. $( [atributo~= texto ]?) Selecciona los elementos que tienen esta
blecido el atributo y uno de sus valores es el texto indicado (los valores se se
paran por espacios).
$( [atributo$= texto ]?)
Selecciona los elementos que tienen establecido el atributo y su valor termina p
or el texto indicado $( [atributo= texto ]?) Selecciona los elementos que tienen estab
lecido el atributo y su valor coincide con el texto indicado
$( [atributo^= texto ]?)
Selecciona los elementos que tienen establecido el atributo y su valor comienza
por el texto indicado $( [atributo!= texto ]?) Selecciona los elementos que tienen est
ablecido el atributo y su valor NO coincide con el texto indicado $( [atributo1= tex
to1 ] [atributo2= texto2 ] [atributo3= texto3 ]?) Selecciona los elementos que tienen esta
blecido todos los atributos indicados con los valores indicados.
Tabla 2: Selectores de atributos
Ejemplos de uso de selectores de atributos
Imaginemos que queremos seleccionar todos aquellos enlaces que van dirigidos a l
a pgina del GVA y quitarles el subrayado. Haremos lo siguiente:
<!DOCTYPE html>
<html>
<head>
<title>selector de atributos *=</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("a[href*='gva.es']").css("text-decoration", "none");
});
</script>
</head>
<body>
<ul>
<li><a href="http://www.edu.gva.es">Consellera de educacin</a></li>
<li><a href="http://www.google.es">Buscador Google</a></li>
<li><a href="http://cefire.edu.gva.es">Moodle del cefire</a></li>
</ul>
</body>
</html>
Ejemplo 19: selectorAtributos1.html
Supongamos ahora, que tenemos en nuestra pgina tres entradas de un blog, cada una
de ellas dentro de un <div>. A los <div> le hemos puesto los siguientes ids:
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 25
primera-entrada, segunda-entrada y tercera-entrada. Queremos seleccionar los tre
s <div> y aplicar una serie de estilos cmo lo haremos? muy sencillo:
<!DOCTYPE html>
<html>
<head>
<title>selector de atributos $=</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.0.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(function()
{
$("div[id$='-entrada']").css(
{
"margin":"5px", "border":"1px solid #ccc",
"width": "300px", "background-color" : "blue"
});
});
</script>
</head>
<body>
<div id="primera-entrada">
Texto de la primera entrada
</div>
<div id="segunda-entrada">
Texto de la segunda entrada
</div>
<div id="tercera-entrada">
Texto de la tercera entrada
</div>
</body>
</html>
Ejemplo 20: selectorAtributos2.html
Hemos aprovechado que los tres ids terminan igual para seleccionarlos con el sel
ector de atributo $=?.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 26
6. Firebug
Firebug es una extensin gratuita del navegador Mozilla Firefox. Firebug nos aport
a una serie de funcionalidades muy interesantes, como por ejemplo, la posibilida
d de inspeccionar los elementos de la pgina o, mejor todava, depurar el cdigo javas
cript de la misma. Lo nico que tendremos que hacer para empezar a utilizarla es d
escargarla e instalarla.
Instalacin de Firebug
Podemos instalar el complemento directamente de la pgina oficial (http://getfireb
ug.com/). Para ello, slo tenemos que abrir la direccin con el navegador Firefox y
pulsar el botn Install Firebug.
En el momento en el que se crearon estos materiales la versin disponible de Fireb
ug era la 1.5.3., pero las principales caractersticas de la herramienta siguen fu
ncionando igual.
Una vez instalado el complemento nos indicar que debemos reiniciar el navegador y
tras el reinicio tendremos el icono de firebug en la esquina inferior derecha d
e la pantalla.
Si pulsamos sobre este icono se desplegar la ventana de Firebug:
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 27
Uso bsico de Firebug
En la ventana de Firebug tenemos tres botones de color rojo (esquina superior de
recha) que sirven para (de izquierda a derecha) minimizar la ventana, desanclar
la ventana del navegador (pasando a tener una ventana independiente) y cerrar Fi
rebug.
Podemos observar en la parte izquierda que la ventana est dividida en solapas: Co
nsola, HTML, CSS, Script, DOM y Red. Cada una de estas solapas nos muestra la pa
rte correspondiente de la pgina que estamos visualizando. Si nos situamos en la s
olapa HTML nos mostrar el cdigo HTML del documento de forma jerrquica, con el smbolo
para desplegar los elementos y el smbolo para replegarlos.
La solapa HTML
A la izquierda de las solapas tenemos dos iconos el primero despliega el men prin
cipal de la herramienta y el segundo nos servir para inspeccionar los elementos H
TML de la pgina. Si pulsamos el icono y nos vamos moviendo por la pgina Web, obser
varemos como se van seleccionando los distintos elementos sobre los que pasamos
y como se va mostrando el cdigo correspondiente al elemento seleccionado en la so
lapa HTML de Firebug. Si hacemos clic con el botn izquierdo del ratn sobre el elem
ento, seleccionaremos su cdigo en la solapa HTML. Cuando seleccionamos un element
o nos aparecer en la parte superior de la solapa los elementos que tenemos que re
correr dentro de la jerarqua del documento HTML para llegar al elemento seleccion
ado. En la parte derecha de la
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 28
ventana nos aparecern los estilos que afectan a dicho elemento, podemos mostrar e
stos estilos de distintas formas: tal y como aparecen en la hoja de estilos (sol
apa Estilo), ordenados por categoras (solapa Panel-computed) o visualizando el mo
delo de caja del elemento (solapa Maquetacin).
Otra funcionalidad interesante que nos proporciona Firebug es la posibilidad de
cambiar el contenido de la pgina al vuelo mediante el botn editar de la esquina su
perior izquierda de la solapa . Al pulsar sobre el botn editar con un elemento se
leccionado podremos cambiar su contenido e iremos viendo cmo se van materializand
o estos cambios en la pgina Web.
La solapa CSS
En la solapa CSS podemos ver las propiedades de estilo CSS que se estn utilizando
en la pgina y, al igual que ocurra con el cdigo HTML, podremos
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 29
cambiarlas al vuelo para ir probando como nos van quedando los distintos estilos
que aplicamos. Para cambiar una propiedad nicamente tendremos que pulsar sobre e
lla y pasar al modo de edicin que nos permitir cambiar su valor. Adems, si hacemos c
lic con el botn derecho del ratn sobre una regla CSS el men contextual desplegado n
os permitir: aadir una nueva propiedad, editar o borrar la propiedad sobre la que
hemos pulsado o aadir una nueva regla de estilo.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 30
7. Metodologa del curso
A lo largo del curso, realizaremos una pequea aplicacin Web utilizando la librera j
Query. Los ejercicios realizados en un tema, ampliarn los del tema anterior y ser
virn de base para realizar los del tema siguiente.
La aplicacin Web que vamos a desarrollar es un carro de la compra, para lo cual,
se proporciona un documento html (carro.html), una hoja de estilos (css/carro.cs
s), un archivo javascript (script/carro.js) y una carpeta de imgenes (img). Estos
ficheros se pueden encontrar dentro del archivo carrito.zip.
La apariencia que tiene la pgina es la siguiente:
Para poder realizar los ejercicios, necesitaremos conocer la estructura interna
del documento carro.html.
La pgina est dividida en dos secciones:
La seccin de los artculos, que se encuentra en el <div> con id item_container.
La seccin del carrito, que se encuentra en el <div> con id cart_container.
jQuery Tema 1. Introduccin a jQuery. Selectores
Ponente: Alejandro Amat Reina Pgina 31
Dentro de la seccin de artculos, cada artculo se encuentra dentro de un <div> de la
clase tem, cuyo id ser el cdigo del artculo. Este <div> tendr dentro los siguientes
elementos:
La imagen del artculo.
El nombre del artculo, dentro de un <label> de la clase title.
El precio del artculo, dentro de un <label> de la clase price.
El stock disponible, dentro de un <label> de la clase stock.
El cdigo html y el aspecto que tomarn los artculos ser el siguiente:
<div class="item" id="i1">
<img src="img/reloj1.jpg" alt="descripcin i1"/>
<label class="title">Reloj 1</label>
<label class="price">20 </label>
<label class="stock">Stock 10</label>
</div>
Finalmente, antes de cerrar el <div> item_container, tenemos otro div de la clas
e clear, cuya misin es terminar con los elementos flotantes del <div>.
Por otra parte, el carrito contiene tres <div>:
El ttulo del carrito (cart_title).
El contenedor de artculos comprados (cart_toolbar).
La barra de navegacin (navigate).
El cdigo html es el siguiente:
<div id="cart_container">
<div id="cart_title">
<span>Carrito</span>
<div class="clear"></div>
</div>
<div id="cart_toolbar">
<div id="cart_items" class="back"></div>
</div>
<div id="navigate">
<div id="nav_left">
<button id="btn_comprar"
title="Confirma la compra de los artculos">Comprar</button>
<button id="btn_prev"
title="Desplaza el carrito hacia la izquierda"><</button>
<button id="btn_next"
El alias de la librera $
Para acceder a cualquier elemento de la librera utilizamos el smbolo $?. Este smbolo
es un alias de la librera jQuery en s misma, de forma que, todas las instruccione
s que accedan a la librera jQuery comenzarn con este smbolo. El siguiente cdigo, es
un ejemplo de una sentencia de seleccin de elementos en jQuery:
$(selector)
Existen diferentes mtodos para seleccionar elementos del DOM. Los veremos ms adela
nte.