Agregar atributo en jQuery

271

¿Cómo puedo agregar un atributo en etiquetas HTML específicas en jQuery?

Por ejemplo, como este HTML simple:

<input id="someid" />

Luego, agregue un atributo disabled = "true" como este:

<input id="someid" disabled="true" />
Yuda Prawira
fuente
posible duplicado de Cómo agregar un atributo HTML con jQuery
Chris Laplante

Respuestas:

520

Puede agregar atributos usando attrasí:

$('#someid').attr('name', 'value');

Sin embargo, para propiedades DOM como checked, disabledy readonly, la forma correcta de hacer esto (a partir de JQuery 1.6) es usar prop.

$('#someid').prop('disabled', true);
Paul Rosania
fuente
28
Para mí $('#someid').prop('disabled', true);no funciona, pero $('#someid').attr('disabled', true);funciona bien.
Vukašin Manojlović
44
De acuerdo con @ VukašinManojlović .. para mí lo mismo.
sstauross
3
Antes de decidir si va a utilizar attro prop, es importante comprender la diferencia entre propiedades y atributos. Sin entender la diferencia, es probable que te encuentres con un comportamiento inesperado. Ver stackoverflow.com/a/6004028/3367343
Travis Hohl el
¿Se puede usar prop como reemplazo de attr ahora? o se usa solo en algunos casos especiales?
Chaudhry Waqas
41

La mejor solución: desde jQuery v1.6 puede usar prop () para agregar una propiedad

$('#someid').prop('disabled', true);

para eliminarlo, use removeProp()

$('#someid').removeProp('disabled');

Reference

También tenga en cuenta que el método .removeProp () no debe usarse para establecer estas propiedades en falso. Una vez que se elimina una propiedad nativa, no se puede volver a agregar. Ver .removeProp () para más información.

diEcho
fuente
29

Puede hacer esto con la .attrfunción de jQuery , que establecerá atributos. Eliminarlos se realiza a través de la .removeAttrfunción.

//.attr()
$("element").attr("id", "newId");
$("element").attr("disabled", true);

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");
Mattsven
fuente
1
¡Bonificación por incluir la función eliminar!
BoatCode
15
$('#someid').attr('disabled', 'true');
Jerad Rose
fuente
7
$('#someid').attr('disabled', 'true');
mrzmyr
fuente
2
$('.some_selector').attr('disabled', true);
morgar
fuente
2

Añadir atributo como:

$('#Selector_id').attr('disabled',true);
amar ghodke
fuente
0

Esto podría ser más útil ...

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');
Rejwanul Reja
fuente
Los atributos y las propiedades no son exactamente iguales. Por ejemplo, "id" es un atributo, no una propiedad. Lo usas .attr()para configurarlo o leerlo. Consulte el párrafo "Atributos vs. Propiedades" en .prop () y .attr () en los documentos de jQuery. También vea la respuesta de Paul Rosania arriba.
jkdev
0
$('#yourid').prop('disabled', true);
Nakendra Pun
fuente
0

usa este código <script> $('#someid').attr('disabled,'true'); </script>

Vildan Bina
fuente
que sería mejor si pudiera tener alguna explicación
Mooga
Solo incluya el enlace jQuery después de escribir el código <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> Texto dentro del símbolo $ seleccione todos los elementos con id = someid, el atributo deshabilitado de este cambio de id a verdadero
Vildan Bina