Los selectores jerárquicos de JQUERY sirven para acceder a las notaciones de los hijos, padres, hermanos y descendentes del DOM, tal y como ocurre con HTML y CSS, en donde creamos estilos con la misma jerarquía.
Selectores descendentes
Podemos seleccionar todos los elementos que descienden de un elemento, exactamente igual que ocurre con CSS. $(‘#ejemplo p’) seleccionamos todos los elementos <p> dentro del elemento padre id=ejemplo.
$('#cajon2 p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); <div id="cajon2"> <p class="uno">Texto 1 del cajon 2</p> <p class="dos">Texto 2 del cajon 2</p> <p class="tres">Texto 3 del cajon 2</p> <div id="cajon21"> <p>Cajon 2.1</p> <p>Cajon 2.2</p> </div> </div>
Este es un ejemplo muy sencillo para cualquiera persona acostumbrada a CSS. Y lo más importante de este ejemplo es que se acceden a todos los p dentro del id=cajon2 y id=cajon21, por que el segundo esta dentro del primero.
Selectores de hijos
Este es otro ejemplo muy relacionado con CSS, podemos acceder a todos los elementos hijos directos del elemento padre. $(‘#ejemplo > p’) en este caso selecciona solo los hijos de id=ejemplo.
$('#cajon2 > p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); <div id="cajon2"> <p class="uno">Texto 1 del cajon 2</p> <p class="dos">Texto 2 del cajon 2</p> <p class="tres">Texto 3 del cajon 2</p> <div id="cajon21"> <p>Cajon 2.1</p> <p>Cajon 2.2</p> </div> </div>
En este ejemplo podemos ver que solo se seleccionan los p directamente dentro de id=cajon2 y no los del id=cajon21.
Selectores de hermanos
Ahora vamos a obtener los elementos hermanos, o aquellos que están justo después del elemento especificado. $(‘p#ejemplo~ p’) en este caso selecciona todos los elemento p al mismo nivel o hermanos de id=ejemplo.
$('p.uno ~ p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); <p class="uno">Texto 1 del cajon 2</p> <p class="dos">Texto 2 del cajon 2</p> <p class="tres">Texto 3 del cajon 2</p>
En este ejemplo se seleccionan los p hermanos de p.uno.
Seleccionar el siguiente elemento
Vamos a ver como podemos seleccionar el elemento siguiente del elemento identificado. $(‘#ejemplo + p’) en este caso buscamos el primer p que sigue al elemento id=ejemplo.
$('p.uno + p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); <p class="uno">Texto 1 del cajon 2</p> <p class="dos">Texto 2 del cajon 2</p> <p class="tres">Texto 3 del cajon 2</p>
Simplemente se pone estilo al siguiente p después de p.uno.
Ejemplo de los 4 selectores JQUERY jerárquicos
<!DOCTYPE html> <html> <head> <title>Selectores jerárquicos</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#miId').click(function(){ $('#cajon2 p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); }); $('#miId2').click(function(){ $('#cajon2 > p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); }); $('#miId3').click(function(){ $('p.uno ~ p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); }); $('#miId4').click(function(){ $('p.uno + p').css({"border":"1px solid red","margin":"40px","text-align":"center"}); }); }); </script> <style> *{ width: 100%; margin: 0 auto; } #cajon1,#cajon2{ margin-bottom:20px; } #cajon21{ margin:20px; } </style> </head> <body> <h1 id='miId'>Pinchar para poner borde a TODOS los párrafos (p) del cajon 2</h1> <br> <h1 id='miId2'>Pinchar para poner borde SOLO a los párrafos (p) del cajon 2</h1> <br> <h1 id='miId3'>Pinchar para poner borde SOLO a LOS PARRAFOS DESPUES del primer párrafo (p) del cajon 2</h1> <br> <h1 id='miId4'>Pinchar para poner borde SOLO AL PARRAFO SIGUIENTE del primer párrafo (p) del cajon 2</h1> <br> <div id="cajon1"> <p>Texto 1 del cajon 1</p> <p>Texto 2 del cajon 1</p> <p>Texto 3 del cajon 1</p> </div> <div id="cajon2"> <p class="uno">Texto 1 del cajon 2</p> <p class="dos">Texto 2 del cajon 2</p> <p class="tres">Texto 3 del cajon 2</p> <div id="cajon21"> <p>Cajon 2.1</p> <p>Cajon 2.2</p> </div> </div> <div id="cajon3"> <p>Texto 1 del cajon 3</p> <p>Texto 2 del cajon 3</p> <p>Texto 3 del cajon 3</p> </div> </body> </html>
Conclusión
Con estos ejemplos tan sencillos podemos ver el gran potencial que nos ofrece JQUERY para poder acceder a cualquier elemento del DOM.
Deja una respuesta