Adicionando atributo no jQuery

271

Como posso adicionar um atributo em tags HTML específicas no jQuery?

Por exemplo, como este HTML simples:

<input id="someid" />

Em seguida, adicionando um atributo disabled = "true" assim:

<input id="someid" disabled="true" />
Yuda Prawira
fonte
possível duplicata Como adicionar um atributo HTML com jQuery
Chris Laplante

Respostas:

520

Você pode adicionar atributos usando attro seguinte:

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

No entanto, para propriedades DOM como checked, disablede readonly, a maneira correta de fazer isso (a partir do JQuery 1.6) é usar prop.

$('#someid').prop('disabled', true);
Paul Rosania
fonte
28
Para mim $('#someid').prop('disabled', true);não funciona, mas $('#someid').attr('disabled', true);funciona bem.
Vukašin Manojlović
4
Concordo com @ VukašinManojlović .. para mim o mesmo.
Sstauross
3
Antes de decidir se você vai usar attrou prop, é importante entender a diferença entre propriedades e atributos. Sem entender a diferença, é provável que você tenha um comportamento inesperado. Veja stackoverflow.com/a/6004028/3367343
Travis Hohl
prop pode ser usado como um substituto para attr agora? ou é usado apenas em alguns casos especiais?
Chaudhry Waqas
41

melhor solução: do jQuery v1.6, você pode usar prop () para adicionar uma propriedade

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

para removê-lo, use removeProp()

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

Reference

Observe também que o método .removeProp () não deve ser usado para definir essas propriedades como false. Depois que uma propriedade nativa é removida, ela não pode ser adicionada novamente. Veja .removeProp () para mais informações.

diEcho
fonte
29

Você pode fazer isso com a .attrfunção do jQuery , que definirá atributos. A remoção deles é feita através da .removeAttrfunção

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

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");
Mattsven
fonte
1
Bônus por incluir a função remover!
BoatCode 6/11
15
$('#someid').attr('disabled', 'true');
Jerad Rose
fonte
7
$('#someid').attr('disabled', 'true');
mrzmyr
fonte
2
$('.some_selector').attr('disabled', true);
morgar
fonte
2

Adicionar atributo como:

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

Isso poderia ser mais útil ....

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');
Rejwanul Reja
fonte
Atributos e propriedades não são exatamente os mesmos. Por exemplo, "id" é um atributo, não uma propriedade. Você usa .attr()para definir ou ler. Veja o parágrafo "Atributos vs. Propriedades" em .prop () e .attr () nos documentos do jQuery. Veja também a resposta de Paul Rosania acima.
Jkdev 14/05
0
$('#yourid').prop('disabled', true);
Nakendra Pun
fonte
0

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

Vildan Bina
fonte
seria melhor se você pudesse ter alguma explicação
Mooga
Basta incluir ligação jQuery após o código de escrita <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> de texto dentro de $ símbolo selecionar todo elemento com id = someid, atributo disabled desta mudança id a verdade
Vildan Bina