jQuery 3
Mulai jQuery 3, removeAttrtidak lagi menyetel properti terkait ke false:
Sebelum jQuery 3.0, menggunakan .removeAttr()pada atribut boolean seperti checked, selected, atau readonlyjuga akan mengatur bernama properti yang sesuai dengan false. Perilaku ini diperlukan untuk versi Internet Explorer kuno tetapi tidak benar untuk browser modern karena atribut mewakili nilai awal dan properti mewakili nilai saat ini (dinamis).
Hampir selalu merupakan kesalahan jika digunakan .removeAttr( "checked" )pada elemen DOM. Satu-satunya waktu yang mungkin berguna adalah jika DOM nanti akan diserialkan kembali ke string HTML. Dalam semua kasus lain, .prop( "checked", false )sebaiknya digunakan sebagai gantinya.
Changelog
Karenanya hanya .prop('checked',false)cara yang benar saat menggunakan versi ini.
Jawaban asli (dari 2011):
Untuk atribut yang memiliki properti boolean yang mendasari ( checkedsalah satunya), removeAttrotomatis menyetel properti yang mendasarinya ke false. (Perhatikan bahwa ini adalah salah satu "perbaikan" kompatibilitas mundur yang ditambahkan di jQuery 1.6.1).
Jadi, keduanya akan berhasil ... tetapi contoh kedua yang Anda berikan (menggunakan prop) adalah yang lebih benar dari keduanya. Jika tujuan Anda adalah menghapus centang pada kotak, Anda benar-benar ingin memengaruhi properti , bukan atributnya, dan Anda tidak perlu removeAttrmelakukannya.