<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
Yukarıdakiler neden çalışmıyor ve bunu nasıl yapmalıyım?
JQuery yolu:
$('#test').attr('id')
Senin örneğinde:
$(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>
Ya da DOM aracılığıyla:
$('#test').get(0).id;
hatta:
$('#test')[0].id;
ve JQuery'de $('#test').get(0)
veya hatta $('#test')[0]
kullanımının arkasındaki neden, $('#test')
bir JQuery seçicisidir ve varsayılan işlevselliği ile tek bir öğe değil bir dizi() sonuç döndürür
jquery'de DOM seçici için bir alternatif
$('#test').prop('id')
'dan farklı olan .attr()
ve $('#test').prop('foo')
belirtilen DOM foo
özelliğini alırken, $('#test').attr('foo')
belirtilen HTML foo
niteliğini alır ve farklılıklar hakkında daha fazla ayrıntı bulabilirsiniz burada.
$('selector').attr('id')
ilk eşleşen öğenin kimliğini döndürür. Referans.
Eşleşen kümeniz birden fazla öğe içeriyorsa, kimliklerin her birini içeren bir dizi döndürmek için geleneksel .each
iterator kullanabilirsiniz:
var retval = []
$('selector').each(function(){
retval.push($(this).attr('id'))
})
return retval
Ya da biraz daha cesur olmak istiyorsanız, sarmalayıcıdan kaçınabilir ve .map
kısayolunu kullanabilirsiniz.
return $('.selector').map(function(index,dom){return dom.id})
$('#test')bir jQuery nesnesi döndürür, bu nedenle
Idsini almak için sadece
object.id` kullanamazsınız
öğenin gerekli ID
sini döndüren $('#test').attr('id')
öğesini kullanmanız gerekir
Bu aynı zamanda aşağıdaki şekilde de yapılabilir,
$('#test').get(0).id
, document.getElementById('test').id
ye eşittir