2010-10-16 39 views
0

希望有人可以提供帮助。我需要抓取正文内的任何文本节点。即使它不包含在任何其他元素中。使用Jquery获取身体内的任何文本节点

我已经试过:

$("p, div, html, body").each(function(){ 
    $(this).contents().filter(function() { 
     var regExText = /(\w|\d|,|;|&)/;           
     if (this.nodeType == 3 && regExText.test(this.nodeValue)) { 
      $(this).wrap('<span></span>'); 
      } 
     }); 
}); 

这是抓住他们在PS和Div的,但不是身体本身。

+0

这是正确答案? ;-) – netadictos 2010-10-19 07:56:33

回答

1

这不是你想要的吗?

$('body').text(); 
0

你应该有什么工作,you can test it here。我想说,你不需要在你的选择器中包含html,但是你想在<span>中处理的<body>元素之外有什么东西吗?

1

contents()只会返回您指定的标记的子元素 - p,div,html和body。例如,td或h1标签内的文本节点将不会被找到。

一种方式来获得使用jQuery是寻找身体的儿童和其后代的<body>标签内的所有文本节点,

$("body, body *").contents().filter(function() { 
    // if this is a text node and matches regex 
    // then do something to it 
} 

你可以找到各种其他非jQuery的方法来获取所有文本节点这answer

0

为什么不只是清理HTML?

var strInputCode=$("body").html(); 
var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, ""); 
alert("Output text:\n" + strTagStrippedText); 

我必须承认,可能$(“身体”)。文本(),做的事情。

相关问题