8 min

¿Qué es jQuery y por qué la gente dice que está olvidado?

jQuery facilitó JavaScript con selección del DOM, eventos y AJAX sencillos. Aprende qué es, por qué decayó y cuándo aún tiene sentido hoy.

¿Qué es jQuery y por qué la gente dice que está olvidado?

jQuery en un minuto

jQuery es una pequeña biblioteca de JavaScript que facilita tareas comunes en una página web: cosas como seleccionar elementos, reaccionar a clics, cambiar texto, mostrar/ocultar partes de la página y enviar peticiones al servidor.

Si alguna vez has visto código como $("button").click(...), eso es jQuery. El $ es simplemente un atajo para “encontrar algo en la página y hacer algo con ello”.

Qué cubrirá este artículo

Esta guía es práctica y no técnica: qué es jQuery, por qué se volvió popular, por qué los proyectos más nuevos no lo usan tanto y cómo tratarlo si tu sitio todavía lo usa. Es intencionadamente más larga para incluir ejemplos claros y orientación del mundo real en lugar de opiniones rápidas.

Qué quiere decir la gente con “olvidado”

Cuando la gente dice que jQuery está “olvidado”, normalmente no quiere decir que haya desaparecido. Quiere decir:

  • Se usa menos en proyectos nuevos, porque los navegadores modernos ya soportan muchas de las funciones que jQuery ofrecía.
  • Sigue siendo común en sitios antiguos (y en algunos plugins, temas y paneles de administración) porque funciona, es familiar y reemplazarlo lleva tiempo.

La historia no es “jQuery está muerto”. Es más bien: jQuery pasó de ser la herramienta por defecto para trabajo front-end a ser una dependencia heredada que puedes heredar—y que ocasionalmente aún eliges a propósito.

Por qué jQuery fue importante

Antes de jQuery, el trabajo front-end a menudo significaba escribir los mismos pequeños y molestos trozos de código una y otra vez—y luego probarlos en múltiples navegadores y descubrir que se comportaban distinto. Incluso objetivos simples como “encontrar este elemento”, “adjuntar un manejador de clic” o “enviar una petición” podían convertirse en una pila de casos especiales.

Cómo se sentía el desarrollo front-end antes de jQuery

Mucho del JavaScript temprano consistía menos en construir funciones y más en lidiar con el entorno. Escribías código que funcionaba en un navegador y luego añadías ramas extra para que funcionara en otro. Los equipos mantenían sus propias “mini bibliotecas” internas de funciones helper solo para sobrevivir a los cambios diarios de UI.

El resultado: desarrollo más lento, más errores y el temor constante de que un cambio mínimo rompiera un navegador antiguo del que dependían tus usuarios.

Diferencias entre navegadores y por qué importaban

Los navegadores no coincidían en detalles importantes. Métodos de selección del DOM, manejo de eventos e incluso cómo obtener tamaños de elemento podían variar. Internet Explorer, en particular, tenía APIs distintas para eventos y solicitudes XMLHTTP, así que el código “estándar” no siempre era verdaderamente portable.

Eso importaba porque los sitios no se construían para un solo navegador. Si tu formulario de pago, menú de navegación o diálogo modal fallaba en un navegador popular, era un problema real de negocio.

El hueco que jQuery llenó para tareas diarias

jQuery se convirtió en un gran avance porque ofrecía una API consistente y amigable que suavizaba esas diferencias.

Hizo tareas comunes mucho más simples:

  • Seleccionar y manipular elementos del DOM con selectores al estilo CSS
  • Manejar eventos de forma cross-browser
  • Animaciones y efectos sin implementar timers a mano
  • Peticiones Ajax con una única interfaz predecible

Igualmente importante, el estilo “write less, do more” de jQuery ayudó a los equipos a lanzar más rápido con menos sorpresas específicas de navegador—especialmente en una era en la que las “APIs DOM modernas” no eran tan capaces o soportadas ampliamente como ahora.

Cosas principales que jQuery te ayuda a hacer

El verdadero superpoder de jQuery no fue inventar ideas nuevas, sino hacer que tareas comunes del navegador se sintieran consistentes y sencillas a través de distintos navegadores. Si lees código front-end antiguo, normalmente verás jQuery usado para cuatro trabajos cotidianos.

1) Selección y recorrido del DOM (la idea de la función $)

La función $() te permitía “agarrar” elementos usando selectores tipo CSS y luego trabajar con ellos como un grupo.

En lugar de lidiar con las peculiaridades de los navegadores y APIs verbosas, podías seleccionar todos los items, encontrar un hijo o subir al padre con llamadas cortas y encadenables.

2) Eventos: patrones click/submit/ready

jQuery hizo simple responder a acciones de usuario:

  • click para botones y enlaces
  • submit para formularios
  • ready para ejecutar código cuando la página cargó

Además suavizaba las diferencias en cómo los navegadores manejaban objetos de evento y el binding, lo cual importaba mucho cuando el soporte de navegadores era desigual.

3) Conceptos básicos de AJAX (cargar datos sin refrescar)

Antes de que fetch() fuese estándar, $.ajax(), $.get() y $.post() de jQuery eran una forma directa de solicitar datos a un servidor y actualizar la página sin recargar.

Esto permitió patrones que hoy parecen normales: búsqueda en vivo, botones de “cargar más”, actualizaciones parciales de la página—usando una API única y familiar.

4) Efectos/animaciones y helpers simples de UI

jQuery popularizó toques rápidos de UI como hide(), show(), fadeIn(), slideToggle() y animate(). Eran convenientes para menús, notificaciones y transiciones básicas—especialmente cuando el soporte de CSS era menos fiable.

Tomadas en conjunto, estas comodidades explican por qué el JavaScript legado a menudo empieza con $( y por qué jQuery fue herramienta por defecto durante tanto tiempo.

Un ejemplo simple: jQuery vs JavaScript moderno

Mucha de la reputación de jQuery viene de lo poco que costaba en líneas hacer tareas comunes de UI—especialmente cuando las diferencias entre navegadores eran dolorosas. Un lado a lado rápido lo deja claro.

Seleccionar un elemento y manejar un clic

jQuery

// Select a button and run code when it's clicked
$('#save').on('click', function (e) {
  e.preventDefault();
  $('.status').text('Saved!');
});

JavaScript moderno (vanilla)

// Select a button and run code when it's clicked
const saveButton = document.querySelector('#save');
const status = document.querySelector('.status');

saveButton?.addEventListener('click', (e) =\u003e {
  e.preventDefault();
  if (status) status.textContent = 'Saved!';
});

Legibilidad: menos líneas vs APIs más claras

A primera vista, la versión jQuery se siente “más limpia”: una cadena selecciona el elemento, adjunta un manejador y actualiza texto. Esa compacidad fue un punto de venta importante.

JavaScript moderno es un poco más verboso, pero también más explícito:

  • querySelector y addEventListener te dicen exactamente lo que sucede.
  • textContent es una propiedad DOM estándar (sin wrapper de biblioteca).
  • Encadenamiento opcional (?.) y comprobaciones de null dejan claro qué pasa si los elementos no existen.

¿Cuál es “mejor”?

Depende del contexto. Si mantienes una base de código antigua que ya usa jQuery en todas partes, el snippet de jQuery puede ser más consistente y rápido de usar. Si escribes código nuevo, las APIs DOM modernas están ampliamente soportadas, reducen dependencias y son más fáciles de integrar con las herramientas y frameworks actuales.

JavaScript nativo alcanzó a jQuery

Durante mucho tiempo la mayor ventaja de jQuery fue la previsibilidad. Podías escribir de una forma para seleccionar elementos, adjuntar eventos o hacer una petición Ajax—y funcionaba en la mayoría de sitios.

Con los años, los navegadores se estandarizaron y mejoraron. Muchas de las comodidades “imprescindibles” que jQuery agrupaba ahora están en JavaScript mismo, así que a menudo ya no necesitas una biblioteca extra solo para lo básico.

Las APIs del DOM se hicieron más simples y consistentes

Los métodos DOM modernos cubren los patrones más comunes de jQuery:

  • document.querySelector() / document.querySelectorAll() reemplazan a $(...) para muchas selecciones.
  • element.classList.add() / .remove() / .toggle() cubren manipulación de clases.
  • element.addEventListener() reemplazó el wrapper de eventos de jQuery para la mayoría de casos.

En lugar de recordar helpers específicos de jQuery, puedes confiar en APIs estándar que funcionan en navegadores modernos.

Las peticiones de red pasaron a fetch

Donde $.ajax() solía ser la opción, fetch() ahora gestiona muchas peticiones diarias con menos ceremonia, especialmente con JSON:

const res = await fetch('/api/items');
const data = await res.json();

Aún necesitas gestionar errores y timeouts explícitamente, pero la idea central—hacer peticiones sin un plugin—es ahora nativa.

Mejor estructura con Promises, async/await y módulos

jQuery introdujo a mucha gente al código asíncrono vía callbacks y $.Deferred. Hoy, Promises y async/await hacen los flujos asíncronos más legibles, y los módulos ES dejan más claro cómo está organizado el código.

Esa combinación—APIs DOM modernas + fetch + características del lenguaje—eliminó gran parte de la razón original por la que los equipos recurrían por defecto a jQuery.

Los frameworks cambiaron cómo se construyen las UIs

Prototipa antes de comprometerte
Crea una pequeña prueba de concepto en minutos y luego amplíala función por función.

jQuery creció en la era de “sitios multipágina”: el servidor renderizaba HTML, el navegador cargaba la página y se añadían comportamientos—manejadores de clic, animaciones, llamadas AJAX—sobre el marcado existente.

Los frameworks modernos invirtieron ese modelo. En vez de mejorar páginas, las apps a menudo generan la mayor parte de la UI en el navegador y la mantienen sincronizada con los datos.

Apps de una sola página y UI basada en componentes

React, Vue y Angular popularizaron construir interfaces con componentes—pequeñas piezas reutilizables que gestionan su propio marcado, comportamiento y estado.

En este enfoque, el framework quiere ser la fuente de la verdad para lo que está en pantalla. Rastrean estado, re-renderizan partes de la UI cuando cambia el estado y esperan que expreses cambios de forma declarativa (“cuando X es true, muestra Y”).

jQuery, en cambio, fomenta manipulación imperativa del DOM (“encuentra este elemento, cambia su texto, ocúltalo”). Eso puede entrar en conflicto con el ciclo de renderizado de un framework. Si cambias nodos del DOM que un componente “controla”, el siguiente re-render puede sobreescribir tus cambios—o acabarás depurando inconsistencias.

Herramientas de construcción y bundlers cambiaron cómo se envía el código

A medida que las SPAs se volvieron comunes, los equipos adoptaron herramientas de construcción y bundlers (Webpack, Rollup, Vite). En lugar de añadir unas cuantas etiquetas <script>, importas módulos, empaquetas solo lo que usas y optimizas para rendimiento.

Ese cambio también hizo que la gente cuidara más las dependencias y el tamaño del bundle. Incluir jQuery “por si acaso” se sentía menos natural cuando cada kilobyte y cada actualización de terceros formaban parte del pipeline.

Por qué jQuery puede sentirse incómodo en apps basadas en componentes

Se puede usar jQuery dentro de un framework, pero con frecuencia se convierte en una isla de casos especiales—más difícil de probar, más difícil de razonar y con más probabilidad de romperse durante refactors. Por eso muchos equipos eligieron patrones nativos del framework en lugar de scripting DOM al estilo jQuery.

Tamaño del bundle y presión de mantenimiento

jQuery en sí no es “enorme”, pero a menudo viene con equipaje. Muchos proyectos que dependen de jQuery también acumulan plugins (sliders, selectores de fecha, librerías de modal, validadores), cada uno añadiendo más código de terceros para descargar y parsear. Con el tiempo, una página puede acabar enviando utilidades superpuestas—especialmente cuando las funciones se añadieron rápidamente y nunca se revisaron.

Descargas más grandes, más trabajo para el navegador

Más JavaScript generalmente significa más tiempo para que el navegador lo obtenga, parse y ejecute antes de que la página sea usable. Eso se nota más en móviles, redes lentas y hardware antiguo. Aunque al final tus usuarios consigan una experiencia fluida, el “tiempo hasta usable” puede empeorar cuando la página espera scripts extra y sus dependencias.

El coste oculto: estilos mixtos y sobrecarga mental

Un patrón común en sitios de larga vida es una base de código “híbrida”: algunas funciones escritas con jQuery, partes nuevas con un framework (React, Vue, Angular) y unos pocos snippets en JavaScript puro. Esa mezcla puede confundir:

  • Dos formas de seleccionar elementos y actualizar el DOM
  • Diferentes modelos de eventos y suposiciones de ciclo de vida
  • Soluciones que compiten por el estado (DOM como estado vs estado de componente)

Cuando coexisten múltiples estilos, los cambios pequeños se vuelven más riesgosos. Un desarrollador actualiza un componente, pero un script jQuery antiguo sigue manipulando el mismo marcado y causa bugs difíciles de reproducir.

La presión de mantenimiento se acumula

Los equipos se alejan de jQuery no porque “deje de funcionar”, sino porque los proyectos modernos optimizan para bundles más pequeños y propiedad clara del comportamiento UI. A medida que los sitios crecen, reducir código de terceros y estandarizar un enfoque suele facilitar afinaciones de rendimiento, depuración y onboarding.

Por qué aún ves jQuery en sitios antiguos

Obtén más créditos de build
Gana créditos compartiendo lo que creas o invitando a compañeros con tu enlace de referencia.

jQuery no solo se hizo popular—se convirtió en por defecto. Durante años fue la forma más fácil de hacer interactividad fiable entre navegadores, así que quedó incrustado en plantillas, snippets, tutoriales y soluciones copy‑paste.

Una vez que eso ocurrió, jQuery se volvió difícil de evitar: incluso si un sitio solo usaba una pequeña característica, a menudo cargaba la librería completa porque todo lo demás asumía que estaba ahí.

Está incorporado en plugins y temas antiguos

Una gran razón por la que jQuery todavía aparece es sencilla: su éxito lo puso “en todas partes” en el código de terceros. Widgets UI antiguos, sliders, lightboxes, validadores de formularios y scripts de tema se escribieron comúnmente como plugins jQuery. Si un sitio depende de uno de esos componentes, eliminar jQuery puede requerir reescribir o reemplazar esa dependencia—no solo cambiar unas pocas líneas.

WordPress lo heredó (y lo mantuvo)

WordPress es una gran fuente de “jQuery legado”. Muchos temas y plugins—especialmente los creados hace años—usan jQuery para comportamiento front-end y, históricamente, las pantallas de administración de WordPress también dependían de él. Incluso cuando las versiones nuevas avanzan hacia JavaScript moderno, la larga cola de extensiones existentes mantiene jQuery presente en muchas instalaciones.

Los sistemas heredados valoran la estabilidad sobre el cambio

Los sitios antiguos suelen priorizar “no romper lo que funciona”. Mantener jQuery puede ser la opción más segura cuando:

  • el sitio es estable y crítico para ingresos
  • el tiempo es limitado y las pruebas de regresión son costosas
  • la base de código tiene años de arreglos pequeños que nadie quiere auditar de nuevo

En resumen, jQuery no siempre está “olvidado”—a menudo es parte de los cimientos sobre los que se construyó un sitio, y los cimientos no se cambian a la ligera.

Cuándo jQuery todavía tiene sentido

jQuery no es “mala” software—simplemente ya no es tan necesaria como antes. Hay situaciones reales donde mantener (o incluso añadir) un poco de jQuery es la opción más práctica, especialmente cuando optimizas por tiempo, compatibilidad o estabilidad en lugar de pureza arquitectónica.

Debes soportar navegadores legacy

Si tus requisitos incluyen navegadores más antiguos (especialmente versiones antiguas de Internet Explorer), jQuery aún puede simplificar selección del DOM, manejo de eventos y AJAX de formas que las APIs nativas no igualan sin polyfills adicionales.

La pregunta clave es el coste: soportar navegadores legacy suele implicar enviar código extra de todos modos. En ese contexto, jQuery puede ser una parte aceptable del paquete de compatibilidad.

Necesitas arreglos rápidos en una base de código jQuery existente

Si un sitio ya está construido alrededor de jQuery, pequeños cambios de UI suelen ser más rápidos y seguros cuando se hacen con el mismo estilo que el resto del código. Mezclar enfoques puede crear confusión (dos patrones para eventos, dos formas de manipular el DOM), lo que complica el mantenimiento.

Una regla razonable: si tocas una o dos pantallas y la app está por lo demás estable, parchear con jQuery está bien—solo evita expandir su uso a nuevos “sistemas” que luego tendrás que deshacer.

Sitios pequeños sin paso de compilación

Para un sitio de marketing simple o una herramienta interna—sin bundler, sin transpiler, sin framework de componentes—jQuery sigue siendo un ayudante cómodo con “una sola etiqueta script”. Es especialmente útil si quieres unas pocas interacciones (menús toggle, comportamientos de formularios simples) y no deseas introducir un pipeline de compilación.

Usas un plugin antiguo que depende de jQuery

Muchos plugins maduros (selectores de fecha, tablas, lightboxes) se construyeron sobre jQuery. Si un plugin antiguo es crítico para el negocio y estable, mantener jQuery como dependencia puede ser la opción de menor riesgo.

Antes de comprometerte, comprueba si existe una alternativa mantenida sin jQuery—o si actualizar el plugin forzará una reescritura más amplia de lo que el proyecto puede asumir ahora.

Cómo alejarte de jQuery de forma segura

Dejar jQuery no es tanto un gran rewrite como reducir la dependencia sin romper el comportamiento del que depende la gente. El enfoque más seguro es incremental: mantener las páginas funcionando mientras vas cambiando piezas por debajo.

1) Audita lo que realmente usas

Empieza respondiendo tres preguntas prácticas:

  • ¿Qué páginas cargan jQuery?
  • ¿Qué plugins dependen de él (sliders, pickers, validadores, etc.)?
  • ¿Qué funciones de jQuery aparecen en tu base de código (selección del DOM, manejo de eventos, AJAX, animaciones)?

Esta auditoría te ayuda a evitar reemplazar cosas que no necesitas y a detectar dependencias “ocultas” como un plugin que usa $.ajax() en silencio.

2) Reemplaza lo más fácil primero

La mayoría de equipos consigue victorias rápidas cambiando los patrones más simples:

  • Selectores: $(".card")document.querySelectorAll(".card")
  • Clases: .addClass() / .removeClass()classList.add() / classList.remove()
  • Eventos: .on("click", ...)addEventListener("click", ...)

Haz esto en PRs pequeños para que sean fáciles de revisar y revertir.

3) Planea tu transición de AJAX

Si usas $.ajax(), migra esas llamadas a fetch() (o un pequeño helper HTTP) punto por punto. Mantén las mismas estructuras de respuesta para que el resto de la UI no tenga que cambiar de inmediato.

// jQuery
$.ajax({ url: \"/api/items\", method: \"GET\" }).done(renderItems);

// Modern JS
fetch(\"/api/items\")
  .then(r =\u003e r.json())
  .then(renderItems);

4) Reduce el riesgo con tests y despliegues por fases

Antes de quitar jQuery, añade cobertura donde importa: flujos clave de usuarios, envíos de formularios y cualquier UI dinámica. Incluso comprobaciones ligeras (tests smoke con Cypress o una checklist de QA) pueden atrapar regresiones temprano. Lanza cambios detrás de una feature flag cuando sea posible y confirma que las métricas/errores se mantienen estables.

Si quieres seguridad extra durante refactors, ayuda usar herramientas que soporten snapshots y rollback. Por ejemplo, equipos que modernizan front ends legados a veces prototipan reemplazos en Koder.ai (una plataforma de codificación vía chat) y usan su flujo de snapshots/rollback para iterar sin perder una versión “conocida como buena”.

Si necesitas ayuda organizando el plan general, consulta /blog/jquery-vs-vanilla-js para una línea base comparativa que puedes usar durante refactors.

Trampas comunes en la migración

Añade un backend rápidamente
Crea una web app con backend en Go y PostgreSQL cuando tu migración necesite nuevas APIs.

Migrar fuera de jQuery suele ser menos sobre “reemplazar sintaxis” y más sobre deshacer años de suposiciones. Aquí tienes las trampas que ralentizan a los equipos—y cómo evitarlas.

Intentar reescribir todo de una vez

Un rewrite completo suena limpio, pero a menudo crea una rama de larga vida, muchas regresiones y presión por entregar trabajo incompleto. Un enfoque más seguro es incremental: reemplaza una función o página a la vez, mantiene el comportamiento idéntico y añade tests alrededor de las piezas que tocas.

Mezclar jQuery con un framework de componentes en la misma área UI

Si introduces React/Vue/Svelte (o incluso un sistema ligero de componentes) mientras jQuery sigue manipulando los mismos nodos DOM, puedes tener un “tira y afloja” UI: el framework re-renderiza y sobreescribe cambios de jQuery, mientras jQuery actualiza elementos que el framework cree que controla.

Regla práctica: establece un límite claro. O bien:

  • Mantén jQuery en un contenedor legacy y monta el framework en otro lugar, o
  • Migra ese widget completo como una unidad antes de añadir nuevos comportamientos.

Diferencias en delegación de eventos

Mucho código antiguo depende de eventos delegados como:

$(document).on('click', '.btn', handler)

El DOM nativo puede replicarlo, pero el matching y las expectativas sobre this/event.target pueden cambiar. Bugs comunes: manejadores que disparan por el elemento equivocado (por iconos/spans anidados) o que no disparan para elementos añadidos dinámicamente porque el listener se adjuntó al ancestro equivocado. Al reemplazar eventos delegados, confirma:

  • Qué elemento debe considerarse el “botón clicado” (closest() suele ser necesario)
  • Si los eventos estaban namespaced (jQuery lo soporta; nativo necesita otra estrategia)

Regresiones de accesibilidad al reemplazar efectos

Los efectos de jQuery UI y animaciones personalizadas a veces ocultaban problemas de accesibilidad por accidente—o los introducían. Al reemplazar fades, slides y toggles, vuelve a comprobar:

  • Gestión del foco
  • Estados ARIA (p. ej., aria-expanded en botones de disclosure)
  • Preferencias de reducción de movimiento (prefers-reduced-motion)

Detectar estas trampas temprano hace que tu migración sea más rápida y tu UI más fiable—incluso antes de que desaparezca el último $().

Conclusiones clave y siguientes pasos

jQuery no es “malo”. Resolvío problemas reales—especialmente cuando los navegadores se comportaban de forma distinta y construir páginas interactivas implicaba escribir mucho código repetitivo. Lo que cambió es que normalmente ya no lo necesitas en proyectos nuevos.

Por qué jQuery declinó

Algunas fuerzas lo empujaron de “elección por defecto” a “dependencia heredada”:

  • Las APIs DOM modernas mejoraron: seleccionar elementos, cambiar clases y manejar eventos son directos en JavaScript nativo.
  • La consistencia entre navegadores aumentó: menos quirks significan menos valor en una capa de compatibilidad.
  • Los frameworks cambiaron las expectativas: React/Vue/Angular fomentan UIs basadas en componentes y renderizado dirigido por estado, donde la manipulación directa del DOM es menos central.
  • Presión por rendimiento y mantenimiento: los equipos se volvieron más sensibles al tamaño del bundle, actualizaciones de dependencias y reducir código “misterioso” en apps grandes.

Siguientes pasos prácticos

Si mantienes un sitio antiguo, jQuery puede seguir siendo una herramienta razonable—especialmente para arreglos pequeños, plugins estables o páginas que no justifican una reescritura completa. Si construyes funciones nuevas, prioriza JavaScript nativo y mantiene jQuery solo donde claramente ahorra tiempo.

Para seguir aprendiendo con impacto práctico, continúa con:

  • Fundamentos del DOM y patrones comunes: /blog/vanilla-js-dom-basics
  • Reemplazar patrones AJAX antiguos con peticiones modernas: /blog/fetch-api-beginners

Si evalúas cómo modernizar más rápido, considera herramientas que te permitan prototipar y desplegar de forma incremental. Koder.ai puede ser útil: describe el comportamiento que quieres en chat, genera una UI basada en React y un backend Go/PostgreSQL si hace falta, y exporta el código fuente cuando estés listo para integrar con una base existente.

Si evalúas opciones de herramientas o soporte, también puedes revisar alternativas aquí: /pricing

Preguntas frecuentes

¿Qué es jQuery en palabras sencillas?

jQuery es una biblioteca de JavaScript que simplifica tareas comunes en el navegador como seleccionar elementos, manejar eventos, hacer peticiones Ajax y efectos básicos (mostrar/ocultar, desvanecimientos, deslizamientos). Su patrón distintivo es usar la función $() para encontrar elementos y encadenar acciones sobre ellos.

¿Qué significa el símbolo `$` en el código jQuery?

$ es simplemente una función abreviada (normalmente provista por jQuery) que busca elementos en la página —similar a document.querySelectorAll()— y devuelve un objeto jQuery sobre el que puedes encadenar métodos.

Si ves $() en código antiguo, normalmente significa “selecciona algo y luego haz algo con ello”.

¿Por qué jQuery fue tan importante históricamente?

Se hizo popular porque convirtió comportamientos inconsistentes entre navegadores en una API predecible. En los primeros tiempos, tareas simples como eventos, recorrido del DOM y Ajax requerían soluciones específicas por navegador.

jQuery ofreció una única API fiable para que los equipos pudieran entregar funciones más rápido y con menos sorpresas entre navegadores.

¿Por qué se dice que jQuery está “olvidado” o en declive?

Principalmente porque los navegadores y JavaScript evolucionaron. Hoy en día a menudo puedes reemplazar tareas clásicas de jQuery con funcionalidades nativas:

  • querySelector / querySelectorAll para selección
  • classList para cambiar clases
  • addEventListener para eventos
  • fetch + async/await para peticiones

Por eso los proyectos nuevos no suelen necesitar una capa de compatibilidad para lo básico.

¿Está jQuery muerto?

No. Muchos sitios existentes todavía lo usan y sigue funcionando. “Legacy” suele significar que es más común en bases de código antiguas que en proyectos nuevos.

La pregunta práctica es si merece la pena mantenerlo según rendimiento, mantenimiento y las dependencias actuales (especialmente plugins).

¿Por qué todavía veo jQuery en WordPress y sitios antiguos?

Porque quedó integrado en ecosistemas antiguos —temas y plugins especialmente—. Un ejemplo típico es WordPress: muchas extensiones históricas asumen que jQuery está presente.

Si tu sitio depende de un plugin que sólo funciona con jQuery (sliders, pickers, lightboxes, validadores), eliminar jQuery suele implicar reemplazar ese plugin, no sólo cambiar unas líneas de código.

¿Cuándo tiene sentido usar jQuery hoy en día?

Sí, en varias situaciones prácticas:

  • Necesitas soportar navegadores antiguos y quieres evitar muchas polyfills
  • Haces pequeñas correcciones en una base de código ya basada en jQuery (la consistencia importa)
  • Tienes un sitio sencillo sin paso de compilación y quieres interacciones rápidas
  • Un plugin crítico para el negocio depende de ello

En esos casos, la estabilidad y la rapidez pueden ser más importantes que reducir dependencias.

¿Cuál es una forma segura de migrar fuera de jQuery?

Comienza de forma incremental y mide el impacto:

  1. Audita el uso: qué páginas cargan jQuery y qué scripts/plugins lo requieren.
  2. Reemplaza lo fácil: selectores, cambios de clase, manejadores simples.
  3. Migra Ajax: pasa $.ajax() a fetch() endpoint por endpoint.
  4. Elimina solo cuando ninguna pieza dependa ya de jQuery.

PRs pequeños y despliegues escalonados reducen el riesgo de regresiones.

¿Cuál es una trampa común al reemplazar manejadores de eventos de jQuery?

La delegación de eventos es frecuente. Código jQuery como:

$(document).on('click', '.btn', handler)

en DOM nativo se puede replicar, pero hay que comprobar las expectativas sobre this/event.target. Errores comunes:

  • manejadores que actúan sobre el elemento equivocado por elementos anidados
  • no disparar para contenido dinámico si el oyente está en el ancestro equivocado

Al reemplazar eventos delegados, confirma qué elemento debe considerarse el “botón clicado” (closest() suele ser necesario) y cómo vas a eliminar listeners (no hay namespaces de evento nativos como en jQuery).

¿Eliminar jQuery puede causar regresiones de accesibilidad o UX?

Sí—los efectos y reescrituras del DOM pueden romper la accesibilidad. Al reemplazar hide()/show() o animaciones, vuelve a comprobar:

  • Gestión del foco (a dónde va el foco tras abrir/cerrar)
  • Atributos ARIA (aria-expanded, etc.)
  • Preferencias de reducción de movimiento (prefers-reduced-motion)

Mantener el mismo comportamiento no es solo visual; incluye interacción y flujo de teclado.

Related posts