Saya perlu mengubah ID elemen menggunakan jQuery.
Tampaknya ini tidak berhasil:
jQuery(this).prev("li").attr("id")="newid"
jQuery(this).prev("li")="newid"
Saya mengetahui bahwa saya dapat mewujudkannya dengan kode berikut:
jQuery(this).prev("li")show(function() {
this.id="newid";
});
Tapi itu sepertinya tidak benar bagiku. Pasti ada cara yang lebih baik, bukan? Juga, jika tidak ada, metode lain apa yang bisa saya gunakan daripada menunjukkan / menyembunyikan atau efek lainnya? Jelas saya tidak ingin menampilkan / menyembunyikan atau memengaruhi elemen setiap saat, hanya untuk mengubah ID-nya.
(Yap, saya seorang pemula jQuery.)
Sunting
Saya tidak bisa menggunakan kelas dalam hal ini, saya harus menggunakan ID.
javascript
jquery
yoavf
sumber
sumber
foo = 1
), anggota objek (foo.bar = 2
ataufoo['bar'] = 2
), atau array array (foo[0] = 3
), tetapi menetapkan ke ekspresi, seperti hasil dari operator ((x + b) = 5
) atau hasil dari panggilan fungsi (foo() = 1
,foo(x).bar(y) = 7
) tidak masuk akal, jadi sudah pasti tidak akan seperti cara kerjanya di jQuery atau perpustakaan JavaScript lainnya.Jawaban:
Sintaks Anda salah, Anda harus memberikan nilai sebagai parameter kedua:
sumber
.prop( ... )
bukan.attr( ... )
?id
masih harus ditetapkan menggunakanattr(...)
OPSI PREFERRED over
.attr
adalah menggunakan.prop
seperti:.attr
mengambil atribut elemen sedangkan.prop
Memperoleh kembali properti yang referensi atribut (yaitu apa yang Anda benar-benar berniat untuk memodifikasi)sumber
.prop()
metode ini menyediakan cara untuk secara eksplisit mengambil nilai properti, sambil.attr()
mengambil atribut."Yang ingin Anda lakukan adalah:
Itu akan mengatur ID ke ID baru
sumber
Saya melakukan sesuatu yang mirip dengan konstruksi ini
sumber
Saya tidak yakin apa tujuan Anda, tetapi mungkinkah lebih baik menggunakan addClass? Maksud saya ID objek menurut saya harus statis dan spesifik untuk objek itu. Jika Anda hanya mencoba mengubahnya agar tidak ditampilkan di halaman atau sesuatu seperti itu, saya akan meletakkan detail-detail itu di kelas dan kemudian menambahkannya ke objek daripada mencoba mengubah ID itu. Sekali lagi, saya katakan itu tanpa memahami tujuan yang Anda garis bawahi.
sumber
sumber
Ini bisa dilakukan untuk semua tujuan. Cukup tambahkan sebelum tag penutup tubuh Anda dan jangan sampai bisa menambahkan Jquery.min.js
sumber
Jawaban Eran baik, tetapi saya akan menambahkannya. Anda perlu menonton interaktivitas apa pun yang tidak sejalan dengan objek (yaitu, jika acara onclick memanggil fungsi, itu masih akan), tetapi jika ada beberapa penanganan acara javascript atau jQuery yang melekat pada ID itu, pada dasarnya akan ditinggalkan :
Jika ID sekarang diubah menjadi # myID123, fungsi yang terlampir di atas tidak akan berfungsi dengan benar dari pengalaman saya.
sumber