<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
Miksi edellä mainittu ei toimi, ja miten minun pitäisi tehdä tämä?
JQueryn tapa:
$('#test').attr('id')
Esimerkissäsi:
$(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>
Tai DOM:n kautta:
$('#test').get(0).id;
tai jopa :
$('#test')[0].id;
ja syy $('#testi').get(0)
käytön taustalla JQueryssä tai jopa $('#testi')[0]
on se, että $('#testi')
on JQueryn valitsija ja palauttaa tuloksista koostuvan joukon(), ei yksittäistä elementtiä oletustoiminnallisuutensa mukaan.
Vaihtoehto DOM-valitsimelle jqueryssä on seuraava.
$('#test').prop('id')
joka eroaa .attr()
:stä ja $('#test').prop('foo')
nappaa määritellyn DOM-ominaisuuden foo
, kun taas $('#test').attr('foo')
nappaa määritellyn HTML-attribuutin foo
, ja lisätietoja eroista löydät täältä.
$('selector').attr('id')
palauttaa ensimmäisen sovitetun elementin id:n. Viite.
Jos sovitettu joukko sisältää useamman kuin yhden elementin, voit käyttää tavanomaista .each
iterator palauttaaksesi arkin, joka sisältää jokaisen id:n:
var retval = []
$('selector').each(function(){
retval.push($(this).attr('id'))
})
return retval
Tai, jos olet valmis menemään hieman hienovaraisemmaksi, voit välttää kääreen ja käyttää .map
oikotie.
return $('.selector').map(function(index,dom){return dom.id})
$('#test')
palauttaa jQuery-olion, joten et voi käyttää pelkkää object.id
saadaksesi sen Id
:n.
sinun on käytettävä $('#test').attr('id')
, joka palauttaa haluamasi elementin ID
.
Tämä voidaan tehdä myös seuraavasti ,
$('#test').get(0).id
, joka on sama kuin document.getElementById('test').id
.