Dengan jQuery 1.6, pengenalan kaedah .prop() telah mencetuskan kekeliruan dalam kalangan pembangun. Mari kita mendalami penggunaan dan implikasi daripada perubahan ini.
Dalam kebanyakan kes, .prop() sepatutnya menjadi kaedah utama anda untuk mengakses dan memanipulasi elemen hartanah. Ia menyediakan pautan terus ke sifat DOM, memastikan anda bekerja dengan keadaan semasa elemen tersebut. Sebagai contoh, untuk menentukan sama ada kotak pilihan ditandakan, anda harus menggunakan:
if ($("selector").prop("checked") === true) { ... }
Kaedah .attr(), sementara masih disokong, boleh mengembalikan hasil yang berbeza daripada .prop() dalam senario tertentu. Ini kerana .attr() mendapatkan semula nilai atribut, yang mungkin tidak selalu mencerminkan keadaan sebenar elemen. Ambil contoh kotak pilihan dengan atribut "ditanda" lalai:
<input type="checkbox" checked>
Kaedah .attr("ditanda") akan mengembalikan rentetan "ditanda", walaupun kotak pilihan itu tidak ditandakan secara visual pada muka surat. Ini boleh menyebabkan kekeliruan.
Jika anda sedang menaik taraf kepada jQuery 1.6, anda mungkin perasan bahawa beberapa .attr() lama anda panggilan terputus. Ini kerana .attr() tidak lagi berkelakuan sama dalam semua kes. Untuk mengelakkan isu ini, adalah disyorkan untuk beralih kepada menggunakan .prop() di mana mungkin.
Walaupun pengenalan .prop() dalam jQuery 1.6 mungkin telah menyebabkan kekeliruan awal, ia akhirnya meningkatkan kejelasan dan ketepatan bekerja dengan sifat DOM. Dengan menerima .prop() dan memahami perbezaan antara sifat dan atribut, pembangun boleh memudahkan kod mereka dan mengelakkan kemungkinan perangkap.
Atas ialah kandungan terperinci .prop() vs. .attr() dalam jQuery: Bilakah Saya Harus Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!