Bagaimana cara menetapkan atribut data tanpa menambahkan nilai dalam jQuery? Saya ingin ini:
<body data-body>
Saya mencoba:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Segala sesuatu yang lain tampaknya menambahkan argumen kedua sebagai string. Apakah mungkin untuk hanya menetapkan atribut tanpa nilai?
javascript
jquery
attributes
attr
David Hellsing
sumber
sumber
data-body
vsdata-body=""
?required
atribut untuk validasi formulir HTML5. Saya yakin ada banyak kasus penggunaan lain yang valid.Jawaban:
The
attr()
Fungsi juga merupakan fungsi setter. Anda bisa memberikannya string kosong.String kosong hanya akan membuat atribut tanpa nilai.
sumber
null
tidak mengejutkan.$(el).prop('data-body', true)
berfungsi untuk saya di mana$(el).attr('data-body', '')
akhirnya pengaturan data-body = "data-body" untuk saya.$(el).prop('data-body', true)
tidak bekerja untuk saya.attr()
tidak berfungsi tetapi juga menambahkan string kosong sebagai nilai atribut yang ingin saya tambahkan.Mungkin mencoba:
sumber
var btn = $(this).get(0); btn.setAttribute("disabled","");
The jawaban yang diterima tidak membuat atribut nama-satunya lagi (per September 2017).
Anda harus menggunakan metode JQuery prop () untuk membuat atribut hanya nama.
sumber
Anda dapat melakukannya tanpa jQuery!
Contoh:
sumber
Tidak yakin apakah ini benar-benar bermanfaat atau mengapa saya lebih suka gaya ini tetapi yang saya lakukan (dalam vanilla js) adalah:
Ini akan menambahkan atribut di semua huruf kecil tanpa nilai atau menghapusnya jika sudah ada pada elemen.
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute
sumber