2011-10-16 91 views
0

我想選擇所有具有直接文本內容的元素。所以鑑於文件選擇包含文字內容的元素?

<div> 
<h1>Hi</h1> 
<article> 
    <p>blah balah blah</p> 
    <p>blah blahrg blarg</p> 
</article> 
<footer></footer> 
</div> 

我想選擇h1和p元素(所以總共3個元素)。有沒有簡單的方法來做到這一點?

回答

3
(function(){ 
    var ignoredNodes = { 
    "script" : true, 
    "noscript" : true 
    }; 

    jQuery("*", "body").filter(
     function(){ 
     var c; 

     if(this.nodeName.toLowerCase() in ignoredNodes) { 
     return false; 
     } 

     c = this.firstChild; 

     return c && c.nodeType === 3 && jQuery.trim(c.data); 
     } 
    ); 

    //[<h1>Hi</h1>, <p>blah balah blah</p>, <p>blah blahrg blarg</p>] 
})() 
+0

我不知道,如果'c.data'是跨瀏覽器,也有一個'nodeValue'屬性具有文字內容。修剪需要過濾掉空的文本節點,例如當你有一個很好的Esailija div – Esailija

+0

之後換行時創建的,我猜他希望刪除body元素中的所有非語義元素,例如

相關問題