2010-10-05 23 views
14

Bueno, tengo esta presentación de diapositivas de imágenes jQuery que usa el atributo "control" dentro de <a>. Al ver cómo no validaba, busqué una manera de agregar este atributo dentro de mi HMTL a través de jQuery, pero realmente no encontré nada relevante. Ahora realmente no me importa cuán válida es mi página, pero tengo mucha curiosidad sobre cómo agregar un atributo HTML dentro de una etiqueta HTML.Cómo agregar un atributo HTML con jQuery

En caso de que yo no era lo suficientemente claro con mi explicación, tengo este código:

<a id="previous" control="-6" href="#"></a> 

Y quiero añadir de control = "- 6" con jQuery.

Respuesta

13

Desde la versión de jQuery ha sido así tratado aquí, pensé que les ofrecería algo diferente , asi que aquí una alternativa DOM API nativa:

document.getElementById('previous').setAttribute('control','-6'); 

Sí, sé que solicitó jQuery. Nunca duele conocer la forma nativa también. : o)

25

función del uso jQuery attr

$("#previous").attr("control", "-6"); 

Un ejemplo

// Try to retrieve the control attribute 
// returns undefined because the attribute doesn't exists 
$("#previous").attr("control"); 

// Set the control attribute 
$("#previous").attr("control", "-6"); 

// Retrieve the control attribute (-6) 
$("#previous").attr("control"); 

ver este example on jsFiddle


Usted no puede utilizar alternativamente data función para almacenar valores en los elementos. Funciona de la misma manera, por ejemplo:

$("#previous").data("control"); // undefined 
$("#previous").data("control", "-6"); // set the element data 
$("#previous").data("control"); // retrieve -6 

Usando data puede almacenar valores más complejos como objetos

$("#previos").data("control", { value: -6 }); 
($("#previos").data("control")).value; // -6 

Ver un data example on jsFiddle

+1

La respuesta correcta. Sin embargo, estoy en contra del uso de datos(), no creo que los nodos html sean el lugar adecuado para almacenar datos, es decir, mezclar V y M. Siempre creo un objeto modelo que se utiliza para mantener los datos comunes en la pantalla. Sin embargo, es útil para pequeñas aplicaciones y mejoras de la página de luz –

1

Prueba esto:

$('#previous').attr('control', '-6'); 

Por qué ? la función $.attr(); de jQuery le permite agregar, obtener o actualizar atributos (clase, id, href, enlace, src, control y todo lo demás).

1
$("#previous").attr("control", "-6"); 
1

HTML:

<a id="previous" href="#">...</a> 

jQuery:

$('#previous').attr('control', '-6'); 
2

Déjame ver si te entendí. que tiene, por ejemplo, el código:

<a id="previous" href="#"></a> 

Y por jQuery que usted quiere que sea:

<a id="previous" control="-6" href="#"></a> 

¿Es correcto? Si es así. Solo tienes que hacer:

$('#previous').attr('control', -6); 

Si no existe un atributo, lo crea jQuery. Así, para eliminarlo que puede hacer:

$('#previous').removeAttr('control'); 

Lo que está haciendo no respeta las reglas en HTML y en todo lo demás, pero funciona bien, una gran cantidad de plugins que haga lo mismo. ; D

¡Espero que esto pueda ser útil!

¡Te veo!

+0

¿Puedes dar un ejemplo de una regla no respetada? – Lucas

+1

Las reglas HTML al pie de la letra no aceptan atributos de etiquetas personalizadas. Pruebe usar el Validador W3C http://validator.w3.org/. Nada de lo que preocuparse, simplemente funcionan bien. El problema es que sus atributos personalizados pueden entrar en conflicto con los personalizados de los complementos, o incluso con algunos nuevos. –

Cuestiones relacionadas