2012-03-02 69 views
3

我想獲取所有元素的文本。我在這裏使用此代碼:jQuery獲取頁面中所有元素的文本

$('*').filter(function() 
{ 
    if(($(this).text().lenght>0)&&($(this).text().lenght<100)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
}).each(function() 
{ 
    console.log($(this).text()); 
}); 

我都試圖表明只有簡短的文字,因爲的.text()返回某個HTML代碼,但它是不工作的。

+1

如果這是一個複製,然後粘貼你拼寫長度錯誤。 – Archer 2012-03-02 13:11:08

+1

哦,廢話......爲了上帝的緣故... – gotqn 2012-03-02 13:19:51

+0

你不是第一個明顯的,但很好隱藏,錯字的人;) – Archer 2012-03-02 13:26:14

回答

10

它更簡單:$('body').text()爲您提供了頁面上的全文。

如果您需要遍歷所有文本節點,在這裏看到:How do I select text nodes with jQuery?

+0

是的,但我需要單獨的文本元素。例如:帶有文本「嗨」的div,帶有文本「用戶」的div等等。我需要在最後使用這個元素的文本。這就是爲什麼我使用$('*') – gotqn 2012-03-02 13:17:07

+0

請參閱我的答案中的鏈接如何迭代文檔中的所有文本節點。這比你想象的要複雜得多。 – 2012-03-02 13:33:55

+0

謝謝大家的答案。我已經修復了我的功能,並且使其更加複雜,以便按照我的要求進行操作。我也會瀏覽你的鏈接。 – gotqn 2012-03-02 14:13:34

1

還有就是length拼寫錯誤應該是

$('*').filter(function() 
{ 
    if(($(this).text().length>0)&&($(this).text().length<100)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
}).each(function() 
{ 
    console.log($(this).text()); 
}); 
0

也許這:

$("body").find().each(function() { 
    if ($(this).text != undefined) { 
     ... 
    } 
}