0

我有一个巨大的页面,其中有很多文本没有在文本标签(h3、h1、p 等)中专门标记。所以,像这样的东西:

<div class="class">Here's some text that really should be in a p tag, but oh well</div>

我希望能够使用 jQuery 一次选择所有这些文本,但我不知道如何选择不在文本特定标签中的文本。是否有一些隐含的标签或其他东西,这样我就可以像 $('text') 一样去收工?

4

5 回答 5

1

你只需要获取标签中不应该出现的文本,在这种情况下 $('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));
  });
}

工作示例

于 2013-08-22T20:53:35.980 回答
1

据我了解,您希望获取页面中的所有文本,但它存储在具有不同 id 的不同标签中,因此通过所有标签和 id 将是一项艰巨的任务。

只需像这样获取所有文本:

var t = $("body").text();

无论元素类型或 id 是什么,它都会获取文档正文中的文本。

请参阅此小提琴以供参考:http: //jsfiddle.net/7Xsxz/

于 2013-08-22T19:59:30.103 回答
1

使用 JavaScript,您需要找到元素并获取innerText

var el = document.getElementsByClassName("class")[0];
var text = el.innerText;

使用 jQuery,您可以使用.text()方法:

var text = $("div.class").text();

例子

于 2013-08-22T19:59:43.027 回答
1

您可以通过类/元素选择器获取元素,即使它不是特定于包含文本的元素。

$('.class').text();

$('div').text();
于 2013-08-22T19:55:03.730 回答
1

如果这是您的愿望,您可以在一般情况下获取“文本” div,无论类别如何。在这种情况下,我正在使用 CSS 影响文本。

$('div').text(function(){
  $(this).css('color', 'blue');
});

代码笔链接

于 2013-08-22T19:55:24.810 回答