Pertanyaan Bagaimana saya bisa mendapatkan ID elemen menggunakan jQuery?


<div id="test"></div>
<script>
  $(document).ready(function() {
    alert($('#test').id);
  });  
</script>

Mengapa cara kerja di atas tidak ada, dan bagaimana saya harus melakukan ini?


1106
2017-07-13 17:11


asal


Jawaban:


Cara jQuery:

$('#test').attr('id')

Dalam contoh Anda:

<div id="test"></div>

$(document).ready(function() {
    alert($('#test').attr('id'));
}); 

Atau melalui DOM:

$('#test').get(0).id;

atau bahkan :

$('#test')[0].id;

dan alasan di balik penggunaan $('#test').get(0) di JQuery atau bahkan $('#test')[0] Apakah itu $('#test') adalah pemilih JQuery dan mengembalikan larik () hasil bukan satu elemen dengan fungsi defaultnya

alternatif untuk pemilih DOM di jquery adalah

$('#test').prop('id')

yang berbeda dari .attr() dan $('#test').prop('foo') meraih DOM yang ditentukan foo properti, sementara $('#test').attr('foo') mengambil HTML yang ditentukan foo atribut dan Anda dapat menemukan detail lebih lanjut tentang perbedaan sini.


1810
2017-07-13 17:12



$('selector').attr('id') akan mengembalikan id dari elemen yang cocok pertama. Referensi.

Jika kumpulan yang cocok Anda berisi lebih dari satu elemen, Anda dapat menggunakan yang konvensional .each  iterator untuk mengembalikan array yang berisi masing-masing id:

var retval = []
$('selector').each(function(){
  retval.push($(this).attr('id'))
})
return retval

Atau, jika Anda ingin mendapatkan sedikit grittier, Anda dapat menghindari pembungkus dan menggunakan .map  jalan pintas.

return $('.selector').map(function(index,dom){return dom.id})

70
2017-07-13 17:13



id adalah milik html Element. Namun, ketika Anda menulis $("#something"), ia mengembalikan objek jQuery yang membungkus elemen DOM yang cocok (s). Untuk mendapatkan kembali elemen DOM yang cocok pertama, panggil get(0)

$("#test").get(0)

Pada elemen asli ini, Anda dapat memanggil id, atau properti atau fungsi DOM asli lainnya.

$("#test").get(0).id

Itulah alasannya kenapa id tidak berfungsi di kode Anda.

Atau, gunakan jQuery attr metode seperti jawaban lainnya menyarankan untuk mendapatkan id atribut elemen pencocokan pertama.

$("#test").attr("id")

37
2017-07-13 17:16



Jawaban di atas sangat bagus, tetapi seiring dengan perkembangan jquery .. jadi Anda juga dapat melakukan:

var myId = $("#test").prop("id");

24
2017-12-05 16:46



$.fn.extend({
    id : function() {
        return this.attr('id');
    }
});

alert( $('#element').id() );

Beberapa kode pemeriksaan yang diperlukan tentu saja, tetapi mudah diimplementasikan!


20
2017-09-25 13:15



.id bukan fungsi jquery yang valid. Anda perlu menggunakan .attr() berfungsi untuk mengakses atribut yang dimiliki suatu elemen. Kamu dapat memakai .attr() untuk keduanya mengubah nilai atribut dengan menentukan dua parameter, atau mendapatkan nilainya dengan menentukan satu parameter.

http://api.jquery.com/attr/


10
2017-07-13 17:17



Jika Anda ingin mendapatkan ID elemen, katakanlah oleh pemilih kelas, ketika suatu peristiwa (dalam hal ini peristiwa klik) dipicu pada elemen tertentu, maka berikut ini akan melakukan pekerjaan:

 $('.your-selector').click(function(){
       var id = $(this).attr('id');
 });

7
2018-05-29 10:35



$('#test') mengembalikan objek jQuery, jadi Anda tidak bisa menggunakannya dengan mudah object.id untuk mendapatkan nya Id

Anda perlu menggunakan $('#test').attr('id'), yang mengembalikan yang diperlukan Anda ID elemen

Ini juga bisa dilakukan sebagai berikut,

$('#test').get(0).id yang sama dengan document.getElementById('test').id


5
2017-07-13 17:16



Mungkin berguna bagi orang lain yang menemukan utas ini. Kode di bawah ini hanya akan berfungsi jika Anda sudah menggunakan jQuery. Fungsi mengembalikan selalu sebuah identifier. Jika elemen tidak memiliki identifier, fungsi akan menghasilkan pengidentifikasi dan menambahkan ini ke elemen.

var generatedIdCounter = 0;

$.fn.id = function() {
    var identifier = this.attr('id');

    if(!identifier) {
        generatedIdCounter++;
        identifier = 'isGenerated_' + generatedIdCounter;

        this.attr('id', identifier);
    }

    return identifier;
}

Bagaimana cara menggunakan:

$('.classname').id();

$('#elementId').id();

3
2018-02-17 10:18



Nah, sepertinya belum ada solusi dan ingin mengajukan solusi saya sendiri yang merupakan perluasan dari prototipe JQuery. Saya meletakkan ini dalam file Helper yang dimuat setelah pustaka JQuery, maka cek untuk window.jQuery

if (window.jQuery) {
    $.prototype.id = function () {
        if (this.length > 1) {
            var val = [];
            this.each(function (idx, el) {
                val.push($(el).id());
            });
            return val;
        } else {
            return this.attr('id');
        }
    }
}

Ini mungkin tidak sempurna tetapi ini adalah awal untuk mungkin dimasukkan ke dalam pustaka JQuery.

Mengembalikan nilai string tunggal atau Array nilai string. The Array of string values, adalah untuk event yang digunakan oleh multi-element selector.


3
2018-02-09 18:27



$('#test').attr('id') Dalam contoh Anda:

<div id="test"></div>

$(document).ready(function() {
    alert($('#test').attr('id'));
}); 

3
2018-03-27 09:46