2012-03-02 71 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) { 
     ... 
    } 
}