jQuery

2011-01-05 7 views
14

ile yaprak düğümleri elde etmenin en verimli yolu, DOM'dan div'leri olan tüm yaprak düğümlerini nasıl alabilir? Bunun için kolay ve büyülü bir seçici yoksa, en uygun çözümü düşünmeye çalışıyorum. "ReachElem.find ('div'). Length == 0 'ı kullanmayı düşündüm ama bu doğru yön olup olmadığından emin değilim. Herhangi bir fikir? Çocukları var olmayan tüm DIV'leri seçecektir seçici seçici ÜstüjQuery

$('div:not(:has(*))') 

aşağıdaki Teşekkür

cevap

32

Sen gidebilirsin.

+0

Teşekkürler. Ağacın "son" div öğesi olan tüm div'ları bulmak istersem de geçerli olur mu? Doğru bir şekilde açıklayacağımdan emin değilim. DOM'den olmayan tüm öğeleri kaldırdığınızı söyleyelim. Şimdi tüm yapraklar sormak aynı olacaktır .. – Ricardo

+1

@Ricardo, çocuksuz herhangi bir DOM elemanı bir yapraktır. Sadece belirli bir elemanın altındaki yaprakları aramak istiyorsanız, önce öğeyi seçin ve tüm ataları aramak için eHussain'in seçicisini bir .find() yöntemine koyun. – Soviut

+0

teşekkürler Sovyut, ama thats wat demek istemedim. Demek istediğim, çocuklarda daha fazla "div" olmayan DOM'deki "all" div'lerini seçmek istiyorum. Temelde tüm en düşük seviyeli .. – Ricardo

10

gerçekten verimli bir şey istiyorsanız, karmaşık :not(:has(*)) seçici kaçının: Ben daha da hızlı eHussain önerisi olarak verimli veya iki kat daha öğrendim

$("div").filter(
    function(index) { 
     var isLeaf = $(this).children().length === 0; 
     return isLeaf; 
    } 
); 

.

+0

'.children()' yerine bir daha hızlı yöntem '.find (': ilk')' dır. –