Menambahkan atribut dalam jQuery

271

Bagaimana saya bisa menambahkan atribut ke tag HTML tertentu di jQuery?

Misalnya, suka HTML sederhana ini:

<input id="someid" />

Kemudian menambahkan atribut disable = "true" seperti ini:

<input id="someid" disabled="true" />
Yuda Prawira
sumber
kemungkinan duplikat dari Bagaimana cara menambahkan atribut HTML dengan jQuery
Chris Laplante

Jawaban:

520

Anda dapat menambahkan atribut menggunakan attrseperti:

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

Namun, untuk properti DOM seperti checked, disableddan readonly, cara yang tepat untuk melakukan ini (pada JQuery 1.6) adalah menggunakan prop.

$('#someid').prop('disabled', true);
Paul Rosania
sumber
28
Bagi saya $('#someid').prop('disabled', true);tidak bekerja, tetapi $('#someid').attr('disabled', true);berfungsi dengan baik.
Vukašin Manojlović
4
Setuju dengan @ VukašinManojlović .. untuk saya sama.
sstauross
3
Sebelum Anda memutuskan apakah akan menggunakan attratau prop, penting untuk memahami perbedaan antara properti dan atribut. Tanpa memahami perbedaannya, Anda cenderung mengalami perilaku yang tidak terduga. Lihat stackoverflow.com/a/6004028/3367343
Travis Hohl
dapatkah prop digunakan sebagai pengganti attr sekarang? atau hanya digunakan dalam beberapa kasus khusus?
Chaudhry Waqas
41

solusi terbaik: dari jQuery v1.6 Anda dapat menggunakan prop () untuk menambahkan properti

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

untuk menghapusnya, gunakan removeProp()

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

Reference

Perhatikan juga bahwa metode .removeProp () tidak boleh digunakan untuk mengatur properti ini menjadi false. Setelah properti asli dihapus, itu tidak dapat ditambahkan lagi. Lihat .removeProp () untuk informasi lebih lanjut.

diEcho
sumber
29

Anda dapat melakukan ini dengan .attrfungsi jQuery , yang akan mengatur atribut. Menghapusnya dilakukan melalui .removeAttrfungsi.

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

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");
mattsven
sumber
1
Bonus untuk menyertakan fungsi hapus!
BoatCode
15
$('#someid').attr('disabled', 'true');
Jerad Rose
sumber
7
$('#someid').attr('disabled', 'true');
mrzmyr
sumber
2
$('.some_selector').attr('disabled', true);
morgar
sumber
2

Tambahkan atribut sebagai:

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

Ini bisa lebih membantu ....

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');
Rejwanul Reja
sumber
Atribut dan properti tidak persis sama. Misalnya, "id" adalah atribut, bukan properti. Anda gunakan .attr()untuk mengatur atau membacanya. Lihat paragraf "Atribut vs. Properti" di bawah .prop () dan .attr () di dokumen jQuery. Lihat juga jawaban Paul Rosania di atas.
jkdev
0
$('#yourid').prop('disabled', true);
Nakendra Pun
sumber
0

gunakan kode ini <script> $('#someid').attr('disabled,'true'); </script>

Vildan Bina
sumber
akan lebih baik jika Anda memiliki penjelasan
mooga
Cukup sertakan tautan jQuery setelah menulis kode <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> Teks di dalam $ simbol pilih semua elemen dengan id = someid, atribut yang dinonaktifkan dari id ini berubah menjadi true
Vildan Bina