README-es

Tú no necesitas jQuery

Build Status

El desarrollo Frontend evoluciona día a día, y los navegadores modernos ya han implementado nativamente APIs para trabajar con DOM/BOM, las cuales son muy buenas, por lo que definitivamente no es necesario aprender jQuery desde cero para manipular el DOM. En la actualidad, gracias al surgimiento de librerías frontend como React, Angular y Vue, manipular el DOM es contrario a los patrones establecidos, y jQuery se ha vuelto menos importante. Este proyecto resume la mayoría de métodos alternativos a jQuery, pero de forma nativa con soporte IE 10+.

Tabla de Contenidos

Traducción

Query Selector

En lugar de los selectores comunes como clase, id o atributos podemos usar document.querySelector o document.querySelectorAll como alternativas. Las diferencias radican en:

  • document.querySelector devuelve el primer elemento que cumpla con la condición

  • document.querySelectorAll devuelve todos los elementos que cumplen con la condición en forma de NodeList. Puede ser convertido a Array usando [].slice.call(document.querySelectorAll(selector) || []);

  • Si ningún elemento cumple con la condición, jQuery retornaría [] mientras la API DOM retornaría null. Nótese el NullPointerException. Se puede usar || para establecer el valor por defecto al no encontrar elementos, como en document.querySelectorAll(selector) || []

Nota: document.querySelector y document.querySelectorAll son bastante LENTOS, procuree utilizar getElementById, document.getElementsByClassName o document.getElementsByTagName si desea obtener un mejor rendimiento.

  • 1.0 Buscar por selector

  • 1.1 Buscar por Clase

  • 1.2 Buscar por id

  • 1.3 Buscar por atributo

  • 1.4 Buscar en descendientes

  • 1.5 Elementos Hermanos/Previos/Siguientes

    • Elementos hermanos

    • Elementos previos

    • Elementos siguientes

  • 1.6 Más cercano

    Retorna el elemento más cercano que coincida con la condición, partiendo desde el nodo actual hasta document.

  • 1.7 Padres hasta

    Obtiene los ancestros de cada elemento en el set actual de elementos que cumplan con la condición, sin incluir el actual

  • 1.8 Formularios

    • Input/Textarea

    • Obtener el índice de e.currentTarget en .radio

  • 1.9 Contenidos de Iframe

    $('iframe').contents() devuelve contentDocument para este iframe específico

    • Contenidos de Iframe

    • Buscar dentro de un Iframe

  • 1.10 Obtener body

  • 1.11 Obtener y establecer atributos

    • Obtener un atributo

    • Establecer un atributo

    • Obtener un atributo data-

⬆ volver al inicio

CSS & Estilo

  • 2.1 CSS

    • Obtener Estilo

    • Establecer estilo

    • Obtener/Establecer Estilos

      Nótese que si se desea establecer múltiples estilos a la vez, se puede utilizar el método setStylesarrow-up-right en el paquete oui-dom-utils.

  • Agregar clase

  • Quitar Clase

  • Consultar si tiene clase

  • Toggle class

  • 2.2 Width & Height

    Ancho y Alto son teóricamente idénticos. Usaremos el Alto como ejemplo:

    • Alto de Ventana

    • Alto de Documento

    • Alto de Elemento

  • 2.3 Posición y Offset

    • Posición

      Obtiene las coordenadas actuales del elemento, en relación con el padre.

    • Offset

      Obtiene las coordenadas actuales del elemento, en relación con el documento.

  • 2.4 Posición vertical del scroll

    Obtiene la posición vertical actual de la barra de scroll para el elemento.

⬆ volver al inicio

Manipulación DOM

  • 3.1 Eliminar

    Elimina el elemento del DOM

  • 3.2 Texto

    • Obtener Texto

      Obtiene los contenidos de texto combinado del elemento, incluyendo sus decendientes.

    • Establecer Texto

      Establece el contenido del elemento al texto especificado

  • 3.3 HTML

    • Obtener HTML

    • Establecer HTML

  • 3.4 Añadir al final

    Añadir elemento hijo después del último hijo del elemento padre

  • 3.5 Añadir al inicio

  • 3.6 Insertar Antes

    Insertar un nuevo nodo antes de los elementos seleccionados

  • 3.7 Insertar después

    Insertar un nuevo nodo después de los elementos seleccionados

  • 3.8 es

    Retorna true si coincide con el selector de la búsqueda

  • 3.9 Clonar

    Crea una copia profunda del elemento

  • 3.10 Vaciar

    Elimina todos los nodos hijo

  • 3.11 Envolver

    Crea una estructura HTML alrededor de cada elemento

  • 3.12 Desenvolver

    Elimina los padres de una serie de elementos seleccionados del DOM

  • 3.13 Remplazar con

    Remplaza cada elemento en una serie de elementos seleccionados con nuevo contenido.

⬆ volver al inicio

Ajax

+Fetch APIarrow-up-right es el nuevo estándar que reemplaza a XMLHttpRequest para efectuar peticiones AJAX. Funciona en Chrome y Firefox, como también es posible usar un polyfill en otros navegadores.

Es una buena alternativa utilizar github/fetcharrow-up-right en IE9+ o fetch-ie8arrow-up-right en IE8+, fetch-jsonparrow-up-right para efectuar peticiones JSONP.

  • 4.1 Carga datos desde un servidor y coloca el HTML regresado en el elemento seleccionado.

⬆ volver al inicio

Eventos

Para un reemplazo completo con namespace y delegación, utilizar https://github.com/oneuijs/oui-dom-eventsarrow-up-right

  • 5.0 Document ready by DOMContentLoaded

  • 5.1 Asignar un evento con "on"

  • 5.2 Desasignar un evento con "off"

  • 5.3 Trigger

⬆ volver al inicio

Utilidades

La mayoría de las utilidades se encuentran en la API nativa. Otras funciones avanzadas podrían por utilidades de librerías que se centran en la consistencia y rendimiento. Se recomienda lodasharrow-up-right como replazo.

  • 6.1 Utilidades Básicas

    • isArray

    Determina si el lemento es un vector(array).

    • isWindow

    Determina si el argumento en una ventana(window).

    • inArray

    Busca un valor específico en el array y retorna su índice (o -1 si no lo encuentra).

    • isNumeric

    Determina si el argumento es un número. Utiliza typeof para decidir el tipo del type ejemplo para mayor precisión.

    • isFunction

    Determina si el argumento es objecto función de Javascript.

    • isEmptyObject

    Verifica que un objeto esté vacío(contiene propiedades no enumerables).

    • isPlainObject

    Verifica si un objeto es un objeto plano (creado utilizando “{}” o “new Object”).

    • extend

    Combina los contenidos de dos o mas objetos en el primer objeto. object.assign es una API de ES6, puedes utilizar polyfillarrow-up-right también.

    • trim

    Elimina los espacios en blanco del inicio y final de un string.

    • map

    Traslada todos los elementos en un arreglo u objeto a un nuevo arreglo de elementos.

    • each

    Una función genérica de iteración, que puede ser utilizada de manera similar para iterar en objetos o arreglos.

    • grep

    Encuentra los elementos de un arreglo que satisfacen una función filtro.

    • type

    Determina la clase [Class] interna de Javascript de un objeto.

    • merge

    Combina los contenidos de dos o mas arreglos en el primero.

    • now

    Retorna un número que representa la hora actual.

    • proxy

    Toma una función y regresa una nueva que siempre tendrá un contexto particular.

    • makeArray

    Convierte un objeto similar a un arreglo en un verdarero arreglo de Javascript.

  • 6.2 Contenedores

    Verifica si un elemento del DOM es descendiente de otro elemento del DOM.

  • 6.3 Globaleval

    Ejecuta el mismo código Javascript de manera global.

  • 6.4 parse

    • parseHTML

    Parsea un string ien un arreglo de nodos DOM.

    • parseJSON

    Toma un string de JSON bien formado y retorna el valor resultante de Javascript.

⬆ volver al inicio

Promesas

Una promesa, representa el resultado eventual de una operación asíncrona. jQuery tiene su propio sistema para utilizar promesas. JavaScript nativo implementa una ligera y mínima API para utilizar promesas de acuerdo con la especificación Promises/A+arrow-up-right.

  • 7.1 done, fail, always

    done se llama cuando una promesa se resuelve, fail se llama cuando una promesa es rechazada, always se llama cuando una promesa no ha sido resuelta o rechazada.

  • 7.2 when

    when se utiliza para manipular múltiples promesas. Se resolverá cuando todas las promesas sean resueltas y se rechazará si alguna es rechazada.

  • 7.3 Deferred

    Deferred es una manera de crear promesas.

⬆ volver al inicio

Animaciones

  • 8.1 Mostrar y ocultar

  • 8.2 Toggle

    Muestra u oculta el elemento

  • 8.3 FadeIn & FadeOut

  • 8.4 FadeTo

    Ajusta la opacidad del elemento

  • 8.5 FadeToggle

    Muestra u oculta el emento animando su opacidad.

  • 8.6 SlideUp & SlideDown

  • 8.7 SlideToggle

    Muestra u oculta el elemento con una animación de deslizamiento.

  • 8.8 Animate

    Realiza una animación personalizada de un conjunto de propiedades CSS.

Alternativas

Última ✔

Última ✔

10+ ✔

Última ✔

6.1+ ✔

Licencia

MIT

Last updated