<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
Kāpēc iepriekš minētais nedarbojas un kā man to darīt?
JQuery veids:
$('#test').attr('id')
Jūsu piemērā:
$(document).ready(function() {
console.log($('#test').attr('id'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test"></div>
Vai izmantojot DOM:
$('#test').get(0).id;
vai pat :
$('#test')[0].id;
un $('#test').get(0)
izmantošanas JQuery vai pat $('#test')[0]
iemesls ir tāds, ka $('#test')
ir JQuery selektors un atgriež rezultātu masīvu(), nevis vienu elementu pēc tā noklusējuma funkcionalitātes.
alternatīva DOM selektoram jquery ir šāda.
$('#test').prop('id')
kas atšķiras no .attr()
un $('#test').prop('foo')
paņem norādīto DOM foo
īpašību, bet $('#test').attr('foo')
paņem norādīto HTML foo
atribūtu, un sīkāk par atšķirībām var uzzināt šeit 1.
$('selector').attr('id')
atgriezīs pirmā atbilstošā elementa id. Atsauce.
Ja jūsu saskaņotā kopa satur vairāk nekā vienu elementu, jūs varat izmantot parasto .each
iterators, lai atgrieztu masīvu, kas satur katru id:
var retval = []
$('selector').each(function(){
retval.push($(this).attr('id'))
})
return retval
Vai arī, ja esat gatavs būt mazliet skarbāks, varat izvairīties no ietinēja un izmantot .map
saīsne.
return $('.selector').map(function(index,dom){return dom.id})
$('#test')
atgriež jQuery objektu, tāpēc jūs nevarat izmantot vienkārši object.id
, lai iegūtu tā Id
.
jums ir jāizmanto $('#test').attr('id')
, kas atgriež jums vajadzīgo elementa ID
.
To var izdarīt arī šādi ,
$('#test').get(0).id
, kas ir vienāds ar document.getElementById('test').id