我有一个巨大的页面,其中有很多文本没有在文本标签(h3、h1、p 等)中专门标记。所以,像这样的东西:
<div class="class">Here's some text that really should be in a p tag, but oh well</div>
我希望能够使用 jQuery 一次选择所有这些文本,但我不知道如何选择不在文本特定标签中的文本。是否有一些隐含的标签或其他东西,这样我就可以像 $('text') 一样去收工?
我有一个巨大的页面,其中有很多文本没有在文本标签(h3、h1、p 等)中专门标记。所以,像这样的东西:
<div class="class">Here's some text that really should be in a p tag, but oh well</div>
我希望能够使用 jQuery 一次选择所有这些文本,但我不知道如何选择不在文本特定标签中的文本。是否有一些隐含的标签或其他东西,这样我就可以像 $('text') 一样去收工?
你只需要获取标签中不应该出现的文本,在这种情况下 $('body').text() 或 $('div').text() 都会给你错误的结果,因为它们无论子元素的标签可能是什么,都会给你所有的文本。
你应该编写这样的代码:
var arr = new Array('P','SPAN','SCRIPT');
$(document).ready(function(){
getText($('body'));
});
function getText(obj){
obj.children().each(function(){
if(arr.indexOf($(this).prop('tagName'))==-1)
alert($(this).clone().children().remove().end().text());
getText($(this));
});
}
据我了解,您希望获取页面中的所有文本,但它存储在具有不同 id 的不同标签中,因此通过所有标签和 id 将是一项艰巨的任务。
只需像这样获取所有文本:
var t = $("body").text();
无论元素类型或 id 是什么,它都会获取文档正文中的文本。
请参阅此小提琴以供参考:http: //jsfiddle.net/7Xsxz/
您可以通过类/元素选择器获取元素,即使它不是特定于包含文本的元素。
$('.class').text();
$('div').text();
如果这是您的愿望,您可以在一般情况下获取“文本” div
,无论类别如何。在这种情况下,我正在使用 CSS 影响文本。
$('div').text(function(){
$(this).css('color', 'blue');
});