28/05/2022
En el dinámico mundo del desarrollo web, donde las tecnologías evolucionan a un ritmo vertiginoso, algunas herramientas logran perdurar y mantener su relevancia a lo largo del tiempo. jQuery es, sin duda, una de ellas. A pesar de que algunos pronosticaron su desaparición, esta potente librería de JavaScript no solo sigue vigente, sino que domina una parte significativa del panorama web actual. Su capacidad para simplificar la interacción con el Modelo de Objeto de Documento (DOM) la convierte en un aliado indispensable para desarrolladores que buscan eficiencia y rapidez en la creación de experiencias de usuario atractivas. Si eres nuevo en el desarrollo web o buscas consolidar tus conocimientos, comprender jQuery es un paso fundamental para construir proyectos desde los más sencillos hasta las aplicaciones más complejas.

La popularidad de jQuery es innegable. Datos recientes de 2024 revelan que un asombroso 77.3% de todos los sitios web en el mundo la utilizan. Dentro del universo de las librerías JavaScript, su cuota de mercado alcanza el 94.4%, superando con creces a otras opciones como React (3.5%) o Vue (0.9%). Esta prevalencia demuestra que jQuery no es una tecnología del pasado, sino una herramienta activa y crucial en el arsenal de cualquier desarrollador. Además, la expectativa por la próxima versión 4.0.0, anunciada para este año, subraya su continua evolución y compromiso con las necesidades actuales del desarrollo web.
Este artículo te guiará a través de los conceptos esenciales de jQuery, desde cómo obtener e integrar la librería en tus proyectos, hasta la manipulación de elementos HTML, la gestión de clases CSS y la interacción con el DOM. Con una base sólida en HTML, CSS y JavaScript, estarás listo para desbloquear el potencial de jQuery y optimizar tu flujo de trabajo.
- Primeros Pasos: ¿Cómo Obtener e Integrar jQuery en tu Proyecto?
- Vincular jQuery a tu Página HTML
- Ejecutar jQuery: La Función `$(document).ready()`
- Sintaxis Básica de jQuery: El Corazón de la Interacción
- Manipulación del DOM con jQuery: Ejemplos Prácticos
- Navegación del DOM con jQuery
- Tabla Comparativa: `.html()` vs. `.text()` y `.prop()` vs. `.attr()`
- Preguntas Frecuentes sobre jQuery
- ¿Es jQuery todavía relevante en 2024?
- ¿Cuáles son los requisitos para aprender jQuery?
- ¿Cuál es la diferencia entre descargar jQuery y usar un CDN?
- ¿Por qué se recomienda colocar el script de jQuery al final del `<body>`?
- ¿Qué hace `$(document).ready()`?
- ¿Cuál es la diferencia entre `.html()` y `.text()`?
- ¿Cuál es la diferencia entre `.prop()` y `.attr()`?
Primeros Pasos: ¿Cómo Obtener e Integrar jQuery en tu Proyecto?
Antes de sumergirte en la magia de jQuery, lo primero que necesitas es tener la librería disponible en tu proyecto web. Existen principalmente dos métodos para lograrlo: la descarga directa del archivo o el uso de un Content Delivery Network (CDN).
Descarga Directa del Archivo
Para aquellos que prefieren tener el control total del archivo en su entorno local, la descarga directa es la opción ideal. Puedes obtener la versión más reciente de jQuery visitando su página oficial de descargas. Una vez allí, simplemente haz clic en la versión que deseas descargar (por ejemplo, la versión minificada para producción, que es más ligera y optimizada). Típicamente, encontrarás opciones como “Download the compressed, production jQuery” o “Download the uncompressed, development jQuery”. Para la mayoría de los proyectos en producción, la versión comprimida es la recomendada.
Si eres un desarrollador que prefiere la línea de comandos, también puedes integrar jQuery en tu proyecto utilizando gestores de paquetes populares:
- npm (Node Package Manager): El gestor de paquetes más común para JavaScript. Ejecuta
npm install jqueryen tu terminal para añadir jQuery a tu proyecto. - Yarn: Una alternativa a npm, conocida por su velocidad. Utiliza
yarn add jquery. - Bower: Aunque menos utilizado en proyectos modernos, también permitía la descarga con
bower install jquery.
Estos métodos no solo descargan la librería, sino que también la gestionan como una dependencia de tu proyecto, lo que facilita las actualizaciones y la colaboración en equipos.
Uso de un CDN (Content Delivery Network)
La alternativa a la descarga local es el uso de un CDN. Un CDN es una red de servidores distribuidos geográficamente que alojan copias de la librería. Cuando un usuario accede a tu sitio web, el CDN entrega el archivo jQuery desde el servidor más cercano a su ubicación, lo que resulta en una carga más rápida de la página y, en muchos casos, mejora el rendimiento general.
Para usar un CDN, simplemente necesitas copiar la URL del archivo jQuery provista por el CDN (por ejemplo, Google CDN, Microsoft CDN, o CDNJS) y pegarla directamente en la sección `<head>` o al final del `<body>` de tu documento HTML. Un ejemplo típico de CDN para jQuery sería:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>El uso de un CDN es especialmente beneficioso porque es probable que el navegador del usuario ya tenga una copia de jQuery en caché si ha visitado otros sitios que utilizan el mismo CDN. Esto reduce el tiempo de carga aún más, ya que no necesita descargar el archivo nuevamente.
Vincular jQuery a tu Página HTML
Una vez que tienes el archivo jQuery (ya sea descargado o a través de un CDN), el siguiente paso es vincularlo a tu documento HTML. Esto se hace utilizando la etiqueta `<script>` con el atributo `src` apuntando a la ubicación del archivo.
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mi Página Web con jQuery</title> </head> <body> <!-- Tu contenido HTML aquí --> <script src="js/jquery-3.7.1.min.js"></script> </body> </html>En el ejemplo anterior, `js/jquery-3.7.1.min.js` asume que has descargado el archivo y lo has colocado en una carpeta `js` dentro de la raíz de tu proyecto. Si utilizas un CDN, simplemente reemplaza la ruta local con la URL del CDN.
Una recomendación común y muy importante para mejorar el rendimiento de tu página es colocar la etiqueta `<script>` de jQuery (y cualquier otro script JavaScript) al final del `<body>`, justo antes de la etiqueta de cierre `</body>`. La razón es simple: el navegador renderiza el contenido HTML de arriba hacia abajo. Si el script se coloca en el `<head>`, el navegador debe pausar la renderización del HTML hasta que el archivo JavaScript se haya descargado y ejecutado por completo. Al colocarlo al final del `<body>`, el contenido de la página se carga y se muestra al usuario más rápidamente, mejorando la percepción de velocidad y la experiencia del usuario.
Sin embargo, como en toda regla, hay excepciones. Si tu archivo JavaScript de jQuery contiene código que define estilos CSS o manipula elementos que deben estar estilizados antes de ser visibles (por ejemplo, un script que oculta un elemento al cargar la página para evitar un 'flash de contenido no estilizado'), entonces podría ser necesario colocarlo en el `<head>` para asegurar que los estilos se apliquen correctamente desde el principio. Evalúa siempre el impacto en el rendimiento y la necesidad funcional.
Ejecutar jQuery: La Función `$(document).ready()`
Una vez que jQuery está vinculado a tu página, necesitas una forma de asegurar que tu código JavaScript se ejecute solo cuando el DOM (Modelo de Objeto de Documento) esté completamente cargado y listo para ser manipulado. Intentar interactuar con elementos HTML que aún no se han cargado puede provocar errores. Para esto, jQuery nos proporciona la función `$(document).ready()`.
<script> $(document).ready(function(){ // Tu código jQuery aquí }); </script>Esta sentencia le indica al navegador que espere a que todo el HTML de la página esté renderizado y disponible antes de ejecutar el código dentro de la función anónima. Desglosemos su significado:
- `$(document)`: Esta parte selecciona el objeto `document`, que representa el documento HTML completo de la página. Es el punto de entrada para seleccionar y manipular cualquier elemento en el DOM.
- `.ready()`: Es un método de jQuery que se invoca sobre el `document`. Este método registra una función que se ejecutará cuando el DOM esté completamente cargado.
- `function(){}`: Es la función anónima (o callback) que contiene todo el código jQuery que deseas ejecutar. Este código solo se ejecutará una vez que el DOM esté listo, garantizando que todos los elementos HTML a los que intentas acceder existen en la página.
Existe una sintaxis abreviada para `$(document).ready()` que es muy común y funcionalmente idéntica:
<script> $(function(){ // Tu código jQuery aquí }); </script>Ambas formas son válidas, pero la forma abreviada es a menudo preferida por su concisión.
Sintaxis Básica de jQuery: El Corazón de la Interacción
La sintaxis de jQuery es notablemente intuitiva y sigue un patrón consistente: `$(selector).acción()`. Comprender esta estructura es clave para empezar a manipular el DOM de manera efectiva.
- `$`: Todo el código jQuery comienza con el signo de dólar (`$`). Este es un alias para la función `jQuery()`. Es la puerta de entrada a todas las funcionalidades que ofrece la librería. Cuando ves `$`, piensa en "acceso a jQuery".
- `selector`: El selector es una cadena de texto que le pasas a la función `$` para identificar el elemento o conjunto de elementos HTML que deseas manipular. Los selectores de jQuery son muy similares a los selectores CSS y permiten una gran flexibilidad:
- Por Etiqueta: `$('p')` seleccionará todos los párrafos.
- Por Clase: `$('.nombreClase')` seleccionará todos los elementos que tengan esa clase.
- Por ID: `$('#nombreId')` seleccionará el elemento con ese ID específico (los IDs deben ser únicos en un documento HTML).
- Combinaciones: Puedes combinar selectores, por ejemplo, `$('div p')` para párrafos dentro de divs.
- `acción`: Es el método de jQuery que defines para realizar una operación sobre los elementos seleccionados. La acción puede ser desde ocultar un elemento, cambiar su CSS, añadir una clase, animarlo, o cualquier otra de las múltiples funciones que jQuery ofrece.
Por ejemplo, si quisieras ocultar un elemento de navegación (`<nav>`) en tu página, la sintaxis sería tan sencilla como:
$("nav").hide();Esta línea de código encuentra el elemento `<nav>` y aplica la acción `.hide()` para hacerlo invisible. La simplicidad y legibilidad son las principales ventajas de esta sintaxis.
Manipulación del DOM con jQuery: Ejemplos Prácticos
jQuery sobresale en la manipulación del DOM, permitiéndote cambiar, añadir o eliminar contenido y estilos de forma dinámica. A continuación, exploraremos algunas de las funciones más comunes.
Añadir y Remover Clases CSS
Una de las formas más eficientes de modificar el estilo de los elementos es a través de la adición o eliminación de clases CSS. jQuery simplifica este proceso con los métodos `.addClass()` y `.removeClass()`.
Añadir Clases con `.addClass()`
El método `.addClass()` te permite añadir una o varias clases CSS a los elementos seleccionados. Esto es ideal para aplicar estilos predefinidos basados en la interacción del usuario o el estado de la aplicación.
$(document).ready(function() { $("h2").addClass("titulo"); });Este código selecciona todos los elementos `<h2>` y les añade la clase `titulo`. Si tu CSS define estilos para `.titulo` (por ejemplo, `color: white;`), estos se aplicarán instantáneamente.
Remover Clases con `.removeClass()`
De manera inversa, el método `.removeClass()` te permite eliminar clases CSS de los elementos seleccionados. Esto es útil para revertir estilos o cambiar la apariencia de un elemento.
$(document).ready(function() { $("p").removeClass("texto"); });En este ejemplo, si un párrafo tenía la clase `texto` (quizás para darle un estilo cursiva y negrita), esta se eliminará, haciendo que el párrafo vuelva a su estilo por defecto o a los estilos de otras clases que aún conserve.
Cambiar Estilos CSS Directamente con `.css()`
Aunque es preferible manejar los estilos a través de clases CSS, jQuery también te permite cambiar directamente las propiedades CSS de un elemento utilizando el método `.css()`. Este método es versátil y puede usarse tanto para obtener el valor de una propiedad como para establecerlo.
- Para obtener un valor: `$('elemento').css('propiedad');`
- Para establecer un valor: `$('elemento').css('propiedad', 'valor');`
- Para establecer múltiples valores: `$('elemento').css({'propiedad1': 'valor1', 'propiedad2': 'valor2'});`
$(document).ready(function(){ $("footer").css("background", "#333"); // Cambia el fondo del footer a gris oscuro $('.boton').css({'color': '#fff', 'font-size': '2em'}); // Cambia color de fuente y tamaño del botón });Como puedes observar, al aplicar múltiples estilos, estos deben ser encerrados entre llaves `{}` como un objeto de propiedades y valores.
Modificar Propiedades de Elementos con `.prop()`
El método `.prop()` es fundamental para modificar las propiedades de los elementos HTML, como `disabled`, `checked`, `selected`, etc. Es importante distinguirlo de `.attr()`, que manipula atributos HTML. `.prop()` se usa para propiedades booleanas o valores que representan el estado actual del elemento.
<button type="submit" id="myButton">Hacer clic</button>$(document).ready(function(){ $("#myButton").click(function(){ $("#myButton").prop("disabled", true); // Deshabilita el botón al hacer clic }); });Una vez que se hace clic en el botón, su propiedad `disabled` se establece en `true`, impidiendo futuros clics hasta que la página se recargue o se modifique programáticamente.
Cambiar Contenido HTML o Texto
jQuery ofrece métodos para manipular el contenido textual o HTML dentro de un elemento.
`.html()`: Cambiar Contenido HTML
El método `.html()` te permite obtener o establecer el contenido HTML (incluidas las etiquetas) de los elementos seleccionados. Es útil para inyectar fragmentos de HTML dinámicamente.

$(document).ready(function(){ $("#myButton").click(function(){ $("p").html("<b>jQuery</b> esta vivo!!!"); // Cambia el contenido del párrafo a HTML }); });Al hacer clic en el botón, el párrafo cambiará su contenido para incluir texto en negrita, demostrando la capacidad de `.html()` para interpretar y renderizar etiquetas HTML.
`.text()`: Cambiar Solo Texto
Similar a `.html()`, pero `.text()` solo maneja texto plano. Cualquier etiqueta HTML que intentes insertar será tratada como una cadena de texto literal y no se renderizará como HTML.
$(document).ready(function(){ $("#myButton").click(function(){ $("p").text("jQuery esta vivo!!!"); // Solo inserta texto plano }); });Esta función es más segura si el contenido proviene de fuentes externas (como entradas de usuario) y quieres prevenir ataques de inyección de HTML.
Remover Elementos con `.remove()`
Si necesitas eliminar un elemento completo del DOM, jQuery proporciona el método `.remove()`. Este método no solo oculta el elemento, sino que lo elimina completamente, incluyendo todos sus datos y eventos adjuntos.
$(document).ready(function(){ $(".tercerP").remove(); // Elimina el párrafo con la clase 'tercerP' });Una vez ejecutado, el elemento y todo su contenido desaparecen del documento.
Mover y Clonar Elementos
jQuery también facilita la reubicación y duplicación de elementos en el DOM.
Mover Elementos con `.appendTo()`
El método `.appendTo()` te permite mover un elemento seleccionado a otro lugar dentro del DOM, colocándolo al final del elemento destino.
$(document).ready(function(){ $("#mover").click(function(){ $("#textoAside").appendTo(".destino"); // Mueve el elemento con ID 'textoAside' al final del div con clase 'destino' }); });Al hacer clic en el botón con ID `mover`, el párrafo con ID `textoAside` será cortado de su ubicación original y pegado dentro del elemento con clase `destino`.
Clonar Elementos con `.clone()` y `.appendTo()`
Si en lugar de mover, necesitas duplicar un elemento, puedes combinar `.clone()` con `.appendTo()` (o `.prependTo()`, `.after()`, `.insertBefore()`). El método `.clone()` crea una copia idéntica del elemento seleccionado.
$(document).ready(function(){ $('#clonar').click(function(){ $('.imagen').clone().appendTo('.imagenclon'); // Clona el elemento con clase 'imagen' y lo añade al final del div con clase 'imagenclon' }); });Este código crea una copia del elemento con clase `imagen` cada vez que se hace clic en el botón `clonar`, y esa copia se inserta dentro del div con clase `imagenclon`.
Además de manipular elementos, jQuery ofrece potentes métodos para navegar por la jerarquía del DOM, permitiéndote acceder a elementos relacionados (padres, hijos, hermanos) de un elemento seleccionado.
Acceder al Elemento Padre con `.parent()`
El método `.parent()` selecciona el elemento padre inmediato del elemento seleccionado. Es útil cuando necesitas afectar el contenedor de un elemento.
$(document).ready(function(){ $("main").parent().css("background", "#0769ad"); // Cambia el fondo del padre de 'main' });Si `main` está contenido dentro de un `div` con clase `wrapper`, este código aplicaría el color de fondo especificado al `wrapper`.
Acceder a los Elementos Hijo con `.children()`
En el sentido opuesto, `.children()` te permite seleccionar todos los elementos hijos directos de un elemento. No selecciona los descendientes anidados más allá del primer nivel de hijos.
$(document).ready(function(){ $(".left").children().css({"color": "#fff", "margin": "10px"}); // Estiliza todos los hijos directos de '.left' });Si el `div` con clase `left` contiene botones y párrafos como hijos directos, este código aplicará el color de fuente blanco y un margen a todos ellos.
Acceder a un Elemento Hijo Específico: `:nth-child(n)`
Si necesitas seleccionar un hijo específico dentro de un grupo de hermanos, puedes usar el selector `:nth-child(n)`. Donde `n` es la posición del hijo (empezando desde 1).
$(document).ready(function(){ $(".main p:nth-child(4)").css("background", "yellow"); // El cuarto párrafo dentro de '.main' tendrá fondo amarillo });Este selector es muy potente y permite una gran especificidad. Puedes usar `even` para elementos pares, `odd` para impares, o incluso fórmulas como `(3n + 1)` para patrones más complejos.
El Selector `$('body')`
El selector `$('body')` es una forma eficiente de seleccionar el elemento `<body>` de tu página. Es un equivalente más directo y optimizado que `document.body` en el contexto de jQuery.
$(document).ready(function(){ $('body').css({'margin': '0', 'padding': '0'}); // Elimina el margen y padding predeterminado del body });Este selector es útil para aplicar estilos globales o realizar manipulaciones que afecten a toda la estructura visible de la página.
Tabla Comparativa: `.html()` vs. `.text()` y `.prop()` vs. `.attr()`
Es común confundir algunos métodos de jQuery. Aquí tienes una tabla para aclarar las diferencias entre pares de funciones similares:
| Método | Propósito Principal | Uso Común | Consideraciones |
|---|---|---|---|
.html() | Obtener o establecer el contenido HTML (con etiquetas) de un elemento. | Insertar contenido con formato (ej., <b>texto</b>), cargar fragmentos de HTML. | Puede ser un riesgo de seguridad si el contenido proviene de fuentes no confiables (riesgo de XSS). |
.text() | Obtener o establecer solo el contenido de texto plano de un elemento. | Mostrar texto sin formato, sanitizar entradas de usuario, obtener el texto visible de un elemento. | Cualquier etiqueta HTML insertada será tratada como texto literal. Más seguro para contenido dinámico. |
.prop() | Obtener o establecer propiedades DOM de un elemento. | Manipular propiedades booleanas (disabled, checked, selected) o el estado actual del elemento. | Refleja el estado dinámico y actual del elemento. Introducido en jQuery 1.6. |
.attr() | Obtener o establecer atributos HTML de un elemento. | Manipular atributos definidos en el HTML inicial (href, src, id, class). | Puede ser menos adecuado para propiedades que cambian dinámicamente o son booleanas. |
Preguntas Frecuentes sobre jQuery
¿Es jQuery todavía relevante en 2024?
Sí, absolutamente. A pesar del surgimiento de frameworks modernos como React o Vue, jQuery mantiene una cuota de mercado abrumadora en sitios web activos (más del 77% de todos los sitios y más del 94% de las librerías JavaScript). Su simplicidad, vasta comunidad y compatibilidad con navegadores antiguos lo hacen ideal para proyectos que requieren rapidez en el desarrollo, compatibilidad amplia o donde la complejidad de un framework completo no es necesaria. Además, se espera la versión 4.0.0, lo que demuestra su continua evolución.
¿Cuáles son los requisitos para aprender jQuery?
Para aprovechar al máximo jQuery, es fundamental tener conocimientos básicos de HTML (para estructurar el contenido), CSS (para estilizarlo) y JavaScript (para entender los fundamentos de la programación y la manipulación del DOM). jQuery es una librería de JavaScript, por lo que una base sólida en este lenguaje te permitirá comprender mejor cómo funciona y cómo extender sus capacidades.
¿Cuál es la diferencia entre descargar jQuery y usar un CDN?
La diferencia principal radica en dónde se aloja el archivo jQuery. Al descargarla, el archivo reside en tu propio servidor web, dándote control total. Al usar un CDN, el archivo se carga desde una red de servidores distribuidos globalmente. Los CDNs suelen ofrecer mayor velocidad de carga (ya que el archivo se sirve desde el servidor más cercano al usuario y puede estar ya en la caché del navegador) y reducen la carga de tu propio servidor. La descarga local es útil para entornos de desarrollo sin conexión o para proyectos muy específicos donde no se desea depender de terceros.
¿Por qué se recomienda colocar el script de jQuery al final del `<body>`?
Se recomienda para mejorar el rendimiento de la página. Cuando un script se coloca en el `<head>`, el navegador debe detener la renderización del HTML para descargar y ejecutar el script. Al colocarlo al final del `<body>`, el navegador puede renderizar todo el contenido HTML visible primero, lo que permite al usuario ver la página más rápidamente mientras el script se carga en segundo plano. Esto mejora la percepción de velocidad y la experiencia del usuario.
¿Qué hace `$(document).ready()`?
`$(document).ready()` es una función de jQuery que garantiza que el código JavaScript dentro de ella se ejecute solo cuando el Modelo de Objeto de Documento (DOM) esté completamente cargado y listo. Esto previene errores que podrían ocurrir si intentas manipular elementos HTML que aún no han sido creados por el navegador. Es una práctica de seguridad y estabilidad fundamental en jQuery.
¿Cuál es la diferencia entre `.html()` y `.text()`?
`.html()` se utiliza para obtener o establecer el contenido HTML de un elemento, lo que significa que puedes insertar etiquetas HTML y estas serán interpretadas por el navegador. Por otro lado, `.text()` se usa para obtener o establecer solo el contenido de texto plano de un elemento; cualquier etiqueta HTML que intentes insertar será tratada como texto literal y no se renderizará como HTML. `.text()` es más seguro para contenidos que no deben ejecutar código HTML, como entradas de usuario.
¿Cuál es la diferencia entre `.prop()` y `.attr()`?
`.prop()` se usa para acceder y modificar las propiedades DOM de un elemento, que son los valores actuales y dinámicos del elemento (por ejemplo, si un checkbox está `checked` o un botón `disabled`). `.attr()` se usa para acceder y modificar los atributos HTML del elemento, que son los valores iniciales definidos en el código HTML. Mientras que `.attr()` manipula el atributo tal como aparece en el HTML, `.prop()` manipula el estado o valor actual del objeto DOM en memoria. Para propiedades booleanas como `checked`, `selected` o `disabled`, se recomienda usar `.prop()`.
En conclusión, jQuery es una herramienta excepcionalmente potente que, a pesar de los cambios en el ecosistema de desarrollo web, continúa siendo una piedra angular para la creación de sitios interactivos y atractivos. Al dominar sus conceptos básicos, desde la descarga e integración hasta la manipulación del DOM y la navegación entre elementos, adquieres una habilidad valiosa que te permitirá desarrollar tareas comunes de desarrollo web de forma más sencilla y eficiente. Su sintaxis concisa y su vasta colección de métodos hacen que tareas que serían complejas con JavaScript puro se conviertan en operaciones de unas pocas líneas de código. Si has seguido este tutorial, estás en disposición de desarrollar aplicaciones web dinámicas y responder a las exigencias de un mercado que, sorprendentemente, sigue confiando en la robustez y simplicidad de jQuery.
Si quieres conocer otros artículos parecidos a jQuery: Tu Guía Esencial para Dominar la Web puedes visitar la categoría Librerías.
