valor tiene saber obtener modificar elemento data con cambiar atributos atributo agregar adicionar jquery attributes

tiene - obtener el valor de un atributo jquery



JQuery, establecer el atributo para la etiqueta<a> (3)

uso $ (expr) .attr ("hash", valor) para establecer un atributo "hash" para el elemento de anclaje HTML "a" pero el Jquery no lo haría. pero si cambio expr a "div", entonces puedo establecer el atributo "hash" en la etiqueta "div".

¿este comportamiento es una especificación xhtml? puedo establecer el atributo de etiqueta "id" de "a". ya que id es un atributo integrado para la etiqueta html "a".


establecer un atributo "hash" para el elemento de ancla HTML "a"

El elemento <a> (HTMLLinkElement) ya tiene una propiedad hash DOM Level 0. Se usa como window.location.hash para leer o establecer la parte ''... # anchor'' al final de la URL a la que hace referencia el href del elemento.

Al establecer a.hash , ya sea directamente oa través del wrapper de jQuery''s attr() , simplemente se establece el nombre del ancla en la URL del enlace. Podría decir deliberadamente que desea un atributo real llamando al método DOM a.setAttribute(''hash'', value) , excepto que esto no funciona en IE6 / 7 debido a un error de larga data en el que confunde atributos y propiedades.

Este es uno de los problemas al agregar atributos personalizados no estándar a los elementos, nunca se sabe cuándo va a entrar en conflicto con un nombre existente. HTML5 le sugerirá que limite sus atributos personalizados a nombres que comiencen con ''datos-'', pero en general es mejor buscar otra forma de almacenar datos si puede.


Otra opción para configurar el hash. esto solo funciona donde la expresión devuelve un elemento a. Esto se debe a que el hash es una propiedad del elemento real dom.

$(expr).each(function() { this.hash = value; });

si necesita probar para ver si es una etiqueta a use esto

$(expr).is(''a'').each(function() { this.hash = value; });

en el caso en que realmente desee agregar algún atributo personalizado, recomendaría agregar el valor usando el método de datos

$(expr).data(''myHash'', value);


Probablemente su problema es que no hay ningún atributo hash para una etiqueta <a> . Tal vez estés buscando el atributo de name , o tal vez quieras cambiar el hash en el enlace href , en cuyo caso tendrás que analizar el texto del enlace y reemplazar el hash utilizando expresiones regulares.