diferencia entre prop () y attr () en jQuery y cuándo usar attr () y prop ()

Vi en algunos lugares .attr () se usa en jQuery. En algunos lugares se usa .prop (). Pero busqué en SO y google, estoy muy confundido. Por favor díganme la diferencia exacta entre estos dos y cuándo usarlos .

He visto los siguientes enlaces jQuery attr vs. prop, ¿hay una lista de accesorios? jQuery attr vs prop?

Pero no obtuve la respuesta. Por favor, ayúdenme. Gracias de antemano.

Antes de dar un voto negativo, explique el motivo, luego lo corregiré en mi próxima publicación.

de docs

La diferencia entre atributos y propiedades puede ser importante en situaciones específicas. Antes de jQuery 1.6, el método .attr () a veces tomaba en cuenta los valores de propiedades al recuperar algunos atributos, lo que podía causar un comportamiento incoherente. A partir de jQuery 1.6, el método .prop () proporciona una forma de recuperar explícitamente valores de propiedad, mientras que .attr () recupera atributos.

ejemplo

Por ejemplo, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked y defaultSelected se deben recuperar y establecer con el método .prop (). Antes de jQuery 1.6, estas propiedades se podían recuperar con el método .attr (), pero esto no estaba dentro del scope de attr. Estos no tienen atributos correspondientes y son solo propiedades.

actualizado después del comentario

Puede establecer un atributo para el elemento HTML. Usted lo define al escribir el código fuente, una vez que el navegador analiza su código, se creará el nodo DOM correspondiente, que es un objeto que tiene propiedades.

Un ejemplo simple puede ser …

 

Aquí tipo, valor, id son atributos. Una vez que el navegador lo represente, obtendrá otras propiedades como alinear, alt, enfoque automático, baseURI, revisado, etc.

enlace si quieres leer más sobre esto

.attr() cambia los atributos para esa etiqueta HTML.

.prop() cambia las propiedades de esa etiqueta HTML según el árbol DOM.

Como sugiere el ejemplo en este enlace. Un campo de entrada puede tener el atributo “valor”. Esto igualará el valor predeterminado que ingresó. Si el usuario cambia el valor en el campo de entrada, la propiedad “valor” cambia en el árbol DOM, pero el atributo original queda.

Entonces, básicamente, si desea configurar el valor predeterminado para un atributo de etiqueta HTML, use la función .attr() . Si el usuario puede cambiar ese valor (como entradas, casillas de verificación, radios, etc.) use la función .prop() para obtener el valor más nuevo.

http://jquery-howto.blogspot.com/2011/06/html-difference-between-attribute-and.html

JQuery es una biblioteca cambiante y a veces hacen mejoras regulares. .attr () se utiliza para obtener atributos de las tags HTML, y si bien funciona perfectamente, .prop () se agregó más tarde para ser más semántico y funciona mejor con atributos sin valor como ‘marcado’ y ‘seleccionado’.

Se recomienda que, si utiliza una versión posterior de JQuery, utilice .prop () siempre que sea posible.

    Intereting Posts