javascript - jQuery kullanarak bir HTML öğesinin boş olup olmadığını nasıl kontrol edebilirim?
Sadece bir HTML öğesi boşsa bir fonksiyonu çağırmaya çalışıyorum, jQuery kullanarak.
Böyle bir şey:
if (isEmpty($('#element'))) {
// do something
}
Cevap #1
if ($('#element').is(':empty')){
//do something
}
daha fazla bilgi için http://api.jquery.com/is/ ve http://api.jquery.com/empty-selector/ adreslerine bakın
DÜZENLEME:
Bazılarının belirttiği gibi, boş bir öğenin tarayıcı tarafından yorumlanması değişebilir. Eğer boşluklar ve satır sonları gibi görünmez öğeleri yok saymak ve uygulamayı daha tutarlı hale getirmek isterseniz bir fonksiyon oluşturabilirsiniz (veya sadece içindeki kodu kullanabilirsiniz).
function isEmpty( el ){
return !$.trim(el.html())
}
if (isEmpty($('#element'))) {
// do something
}
Bunu bir jQuery eklentisine de dönüştürebilirsiniz, ama ne demek istediğimi anlıyorsunuz.
Cevap #2
Bunu tek güvenilir yol olarak buldum (çünkü Chrome ve FF boşlukları ve satır sonlarını eleman olarak kabul ediyor):
if($.trim($("selector").html())=='')
Cevap #3
Boşluk ve satır sonları, :empty seçici kullanırken en büyük sorunlardır. Dikkatli olun, CSS'te :empty sahte sınıfı aynı şekilde çalışır. Bu yöntemi seviyorum:
if ($someElement.children().length == 0){
someAction();
}
Cevap #4
!elt.hasChildNodes()
Evet, biliyorum, bu jQuery değil, bu yüzden bunu kullanabilirsiniz:
!$(elt)[0].hasChildNodes()
Şimdi mutlu musun?
Cevap #5
jQuery.fn.doSomething = function() {
//return something with 'this'
};
$('selector:empty').doSomething();
Cevap #6
Eğer 'boş' derken HTML içeriği olmayanı kastediyorsanız,
if($('#element').html() == "") {
//call function
}
Cevap #7
Özetle, bir öğenin boş olup olmadığını anlamak için birçok seçenek vardır:
1- html kullanarak:
if (!$.trim($('p#element').html())) {
// paragraph with id="element" is empty, your code goes here
}
2- text kullanarak:
if (!$.trim($('p#element').text())) {
// paragraph with id="element" is empty, your code goes here
}
3- is('':empty'') kullanımı:
if ($('p#element').is(':empty')) {
// paragraph with id="element" is empty, your code goes here
}
4- length kullanma
if (!$('p#element').length){
// paragraph with id="element" is empty, your code goes here
}
Bağımlılıkta, bir input öğesinin boş olup olmadığını anlamaya çalışıyorsanız, val kullanabilirsiniz:
if (!$.trim($('input#element').val())) {
// input with id="element" is empty, your code goes here
}
