Dodanie atrybutu w jQuery

271

Jak mogę dodać atrybut do określonych znaczników HTML w jQuery?

Na przykład taki prosty HTML:

<input id="someid" />

Następnie dodanie atrybutu disabled = „true” w następujący sposób:

<input id="someid" disabled="true" />
Yuda Prawira
źródło
możliwy duplikat Jak dodać atrybut HTML za pomocą jQuery
Chris Laplante

Odpowiedzi:

519

Możesz dodać atrybuty za pomocą attr:

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

Jednak dla właściwości DOM podoba checked, disabledi readonly, właściwy sposób to zrobić (jak jQuery 1.6) jest w użyciu prop.

$('#someid').prop('disabled', true);
Paul Rosania
źródło
28
Dla mnie $('#someid').prop('disabled', true);nie działa, ale $('#someid').attr('disabled', true);działa dobrze.
Vukašin Manojlović
4
Zgadzam się z @ VukašinManojlović .. dla mnie to samo.
sstauross
3
Zanim zdecydujesz, czy masz zamiar użyć attrlub prop, ważne jest, aby zrozumieć różnicę między właściwości i cech. Bez zrozumienia różnicy możesz spodziewać się nieoczekiwanego zachowania. Zobacz stackoverflow.com/a/6004028/3367343
Travis Hohl
czy prop może być teraz używany jako zamiennik ATTR? czy jest używany tylko w niektórych szczególnych przypadkach?
Chaudhry Waqas,
41

najlepsze rozwiązanie: z jQuery v1.6 możesz użyć prop (), aby dodać właściwość

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

aby go usunąć, użyj removeProp()

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

Reference

Należy również pamiętać, że metoda .removeProp () nie powinna być używana do ustawiania tych właściwości na false. Po usunięciu właściwości natywnej nie można jej ponownie dodać. Aby uzyskać więcej informacji, zobacz .removeProp ().

diEcho
źródło
29

Możesz to zrobić za pomocą .attrfunkcji jQuery , która ustawi atrybuty. Usuwanie ich odbywa się za pomocą .removeAttrfunkcji.

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

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");
mattsven
źródło
1
Bonus za włączenie funkcji usuwania!
BoatCode
15
$('#someid').attr('disabled', 'true');
Jerad Rose
źródło
7
$('#someid').attr('disabled', 'true');
mrzmyr
źródło
2
$('.some_selector').attr('disabled', true);
Morgar
źródło
2

Dodaj atrybut jako:

$('#Selector_id').attr('disabled',true);
Amar Ghodke
źródło
0

To może być bardziej pomocne ....

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');
Rejwanul Reja
źródło
Atrybuty i właściwości nie są dokładnie takie same. Na przykład „id” jest atrybutem, a nie właściwością. Możesz .attr()go ustawić lub odczytać. Zobacz akapit „Atrybuty kontra właściwości” w .prop () i .attr () w dokumentach jQuery. Zobacz także odpowiedź Paula Rosanii powyżej.
jkdev
0
$('#yourid').prop('disabled', true);
Nakendra Pun
źródło
0

użyj tego kodu <script> $('#someid').attr('disabled,'true'); </script>

Vildan Bina
źródło
byłoby
miło,
Wystarczy dołączyć link jQuery po napisaniu kodu <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> Tekst wewnątrz symbolu $ zaznacz wszystkie elementy o id = someid, wyłączony atrybut tej zmiany id na true
Vildan Bina