Cada vez que utilizamos JQuery estamos haciendo uso de selectores .Unos selectores serán mas sencillos y otros mas complejos y según vayamos adquiriendo experiencia los manejaremos mejor .Ahora bien siempre hay sorpresas y cosas a mejorar supongamos que disponemos de la siguiente página HTML con el siguiente código de JQuery.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="jquery-1.11.0.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#zona1 li ul li:last").css("color","red"); }); </script> </head> <body> <div id="zona1"> <ul> <li>Primero</li> <li>Segundo</li> <li>Submenu <ul> <li>Cuarto</li> <li>Quinto</li> </ul> </li> <div id="zona2"> <ul> <li>Primero</li> <li>Segundo</li> <li>Submenu <ul> <li>Cuarto</li> <li>Quinto</li> </ul> </li>
El código es sencillo y selecciona el último elemento de una sublista de la zona1
El concepto de JQuery Context o contexto.
La selección que hemos hecho nos parece bastante correcta .Ahora bien muchas personas se olvidan de que JQuery permite un segundo parametro cuando seleccionamos . Es decir podríamos haber realizado la selección de la siguiente forma .
<script type="text/javascript"> $(document).ready(function() { $("li ul li:last","#zona1").css("color","red"); }); </script>
El resultado hubiera sido el mismo .Ahora bien ¿para que sirve este parámetro ? . Este parámetro se le denomina contexto y sirve para decirle a JQuery en que parte del arbol DOM debe hacer la busqueda de nodos a traves de sus selectores . Por ejemplo en este momento tenemos un arbol DOM como el siguiente .
El contexto en el que JQuery realizará la busqueda si utilizamos el siguiente código :
<pre><script type="text/javascript"> $(document).ready(function() { $("#zona1 li ul li:last").css("color","red"); }); </script>
Es como podemos ver en el diagrama la página completa
Ahora bien si el selector le hubiéramos asignado un contexto de partida .
<script type="text/javascript"> $(document).ready(function() { $("li ul li:last","#zona1").css("color","red"); }); </script>
La búsqueda hubiera sido mucho mas óptima ya que el JQuery Context sería el siguiente .
JQuery Context Object (Conclusiones)
No siempre es necesario usar el contexto ya en muchas situaciones la página no es muy grande o no tenemos que utilizar un selector que se aplique a una única zona concreta del documento. Sin embargo hay otras muchas en las que nos puede ser util y mejorará el rendimiento.
[…] artículos relacionados : JQuery Context, JQuery […]
[…] Otros artículos relacionados : JQuery Sizzle, jQuery Context […]
[…] artículos relacionados: jQuery Context , jQuery Ajax , HTML5 data […]
[…] artículos relacionados: Javascript Templates , JQuery Context ,Javascript […]
[…] artículos relacionados: Usando JQueryContexto , JavaScript […]
[…] artículos relacionados : JQuery WrapperSet , JQuery Contexto ,Ajax y Eventos […]
Justo ayer empecé a ver este tipo de selectores así que el post me cayó como anillo al dedo.
Un saludos Cecilio!
me alegro que te fuera util