<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
Mengapa cara di atas tidak berhasil, dan bagaimana saya harus melakukan ini?
jquery
jquery-selectors
rencana ketakutan
sumber
sumber
Jawaban:
Cara jQuery:
Dalam contoh Anda:
Atau melalui DOM:
atau bahkan :
dan alasan di balik penggunaan
$('#test').get(0)
dalam JQuery atau bahkan$('#test')[0]
adalah itu$('#test')
adalah pemilih JQuery dan mengembalikan array () hasil bukan elemen tunggal dengan fungsi defaultnyaalternatif untuk pemilih DOM di jquery adalah
yang berbeda dari
.attr()
dan$('#test').prop('foo')
meraihfoo
properti DOM yang ditentukan , sementara$('#test').attr('foo')
mengambilfoo
atribut HTML yang ditentukan dan Anda dapat menemukan detail lebih lanjut tentang perbedaan di sini .sumber
$('#test').id()
.$('selector').attr('id')
akan mengembalikan id dari elemen yang cocok pertama. Referensi .Jika set yang cocok Anda mengandung lebih dari satu elemen, Anda dapat menggunakan
.each
iterator konvensional untuk mengembalikan array yang berisi setiap id:Atau, jika Anda ingin sedikit lebih grittier, Anda dapat menghindari pembungkus dan menggunakan
.map
pintasan .sumber
retval.push($(this).attr('id'))
bisa ditulisretval.push(this.id)
return $('.selector').map(function(i, dom){ return $(dom).attr('data-id'); })
id
adalah properti dari htmlElement
. Namun, saat Anda menulis$("#something")
, ia mengembalikan objek jQuery yang membungkus elemen DOM yang cocok. Untuk mendapatkan elemen DOM yang cocok pertama kembali, hubungiget(0)
Pada elemen asli ini, Anda dapat memanggil id, atau properti atau fungsi DOM asli lainnya.
Itulah alasan mengapa
id
tidak bekerja dalam kode Anda.Atau, gunakan
attr
metode jQuery sebagai jawaban lain menyarankan untuk mendapatkanid
atribut elemen pencocokan pertama.sumber
Jawaban di atas memang bagus, tetapi seiring perkembangan jquery .. sehingga Anda juga dapat melakukannya:
sumber
attr()
ditambahkan pada 1.0, danprop()
ditambahkan pada 1.6, jadi saya anggap komentar Andaprop()
adalah cara baru.attr
) atau yang berpotensi dimodifikasi oleh skrip (prop
). Jika Anda tidak benar-benar memodifikasiid
atribut elemen apa pun menggunakan skrip sisi klien, makaprop
danattr
itu identik.Beberapa kode pemeriksaan diperlukan tentu saja, tetapi mudah diimplementasikan!
sumber
.id
bukan fungsi jquery yang valid. Anda perlu menggunakan.attr()
fungsi untuk mengakses atribut yang dimiliki elemen. Anda dapat menggunakan.attr()
keduanya untuk mengubah nilai atribut dengan menentukan dua parameter, atau mendapatkan nilai dengan menentukan satu parameter.http://api.jquery.com/attr/
sumber
Jika Anda ingin mendapatkan ID suatu elemen, katakanlah oleh pemilih kelas, ketika suatu peristiwa (dalam hal ini peristiwa klik) dipecat pada elemen tertentu, maka hal berikut akan melakukan pekerjaan:
sumber
$('#test').attr('id')
Dalam contoh Anda:sumber
Yah, sepertinya belum ada solusi dan ingin mengusulkan solusi saya sendiri yang merupakan perluasan dari prototipe JQuery. Saya menempatkan ini dalam file Helper yang dimuat setelah perpustakaan JQuery, maka cek untuk
window.jQuery
Ini mungkin tidak sempurna tetapi ini adalah awal untuk mungkin mendapatkan inklusi ke perpustakaan JQuery.
Mengembalikan nilai string tunggal atau Array nilai string. Array nilai string, adalah untuk acara selektor multi-elemen digunakan.
sumber
$('#test')
mengembalikan objek jQuery, jadi Anda tidak bisa menggunakan hanyaobject.id
untuk mendapatkannyaId
Anda perlu menggunakan
$('#test').attr('id')
, yang mengembalikanID
elemen yang Anda butuhkanIni juga dapat dilakukan sebagai berikut,
$('#test').get(0).id
yang sama dengandocument.getElementById('test').id
sumber
$('#test')[0].id
yang sama dengan.get(0)
Mungkin bermanfaat untuk orang lain yang menemukan utas ini. Kode di bawah ini hanya akan berfungsi jika Anda sudah menggunakan jQuery. Fungsi mengembalikan selalu pengidentifikasi. Jika elemen tidak memiliki pengidentifikasi, fungsi menghasilkan pengidentifikasi dan menambahkan ini ke elemen.
Cara Penggunaan:
sumber
Dengan menggunakan kode di atas Anda bisa mendapatkan id.
sumber
Ini adalah pertanyaan lama, tetapi pada 2015 ini mungkin benar-benar berfungsi:
Dan Anda juga dapat membuat tugas:
Selama Anda mendefinisikan plugin JQuery berikut:
Menariknya, jika
element
merupakan elemen DOM, maka:sumber
Karena id adalah atribut, Anda bisa mendapatkannya dengan menggunakan
attr
metode ini.sumber
Ini bisa id elemen, kelas, atau secara otomatis menggunakan genap
sumber
Penting: jika Anda membuat objek baru dengan jQuery dan mengikat acara, Anda HARUS menggunakan prop dan bukan attr , seperti ini:
$("<div/>",{ id: "yourId", class: "yourClass", html: "<span></span>" }).on("click", function(e) { alert($(this).prop("id")); }).appendTo("#something");
sumber
Ini akhirnya akan menyelesaikan masalah Anda:
katakanlah Anda memiliki banyak tombol pada halaman dan Anda ingin mengubahnya dengan jQuery Ajax (atau tidak ajax) tergantung pada ID mereka.
katakan juga bahwa Anda memiliki banyak jenis tombol (untuk formulir, untuk persetujuan dan untuk tujuan sejenis), dan Anda ingin jQuery hanya memperlakukan tombol "suka".
di sini adalah kode yang berfungsi: jQuery hanya akan memperlakukan tombol-tombol yang berkelas .cls-hlpb, ia akan mengambil id dari tombol yang diklik dan akan mengubahnya sesuai dengan data yang berasal dari ajax.
kode diambil dari w3schools dan diubah.
sumber
sumber
itu tidak menjawab OP, tetapi mungkin menarik bagi orang lain: Anda dapat mengakses
.id
bidang dalam kasus ini:sumber