2013-12-20 23 views
0

我如何使用selector given in this answer如何用JQuery在DOM中找到每個最低節點?

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

找到任何最低級別的元素在HTML中給定塊?例如,如果我的HTML是這樣的:

<P style=""> 
<SPAN style="font-family:'sans-serif'">More:</SPAN> 
<SPAN style="font-family:'sans-serif'">at. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et</SPAN></P> 
<ul> 
    <li>A list item</li> 
</ul> 

然後我想返回三個元素 - 跨度包裹「更多:」 &的Lorem存有文本,和李包裝「列表項」。

我當前的代碼只是抓取頁面塊在DIV水平,這是不是生成的標記湯,我有足夠的工作粒狀:

function loadElements (guideline) { 
    var url = guideline.import + "/input.html", 
     text, 
     i = 0, 
     el; 
    console.log("url is " + url) 
    $.get(url, function(html) { 
     $(html).filter('div').each(function() { 
     i ++; 
     text = i + "<br/>" + $(this).text(); 
     $("#source_elements").append(text); 
     }); 
    }); 
} 

我不知道如何把更細緻的選擇這裏。

回答

2

您的選擇器只需稍作更改即可。首先抓住body標籤,這樣您就不會從<head>獲取不需要的元素。然後你想抓住任何沒有任何標籤(*)的標籤(*)。

Demo

$('body').find('*:not(:has(*))'); 
相關問題