在div中选择未标记的文本

时间:2013-08-22 19:52:13

标签: javascript jquery html css

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

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

我希望能够使用jQuery一次性选择所有这些文本,但我不知道如何选择文本特定标签中的文本。是否有一些隐含的标记或其他内容,以便我可以像$(&#39; text&#39;)一样调用它?

5 个答案:

答案 0 :(得分:1)

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

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

$('div').text();

答案 1 :(得分:1)

如果这是您的愿望,您可以在div内一般地抓取“文字”,无论是哪个班级。在这种情况下,我正在用CSS影响文本。

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

Codepen link

答案 2 :(得分:1)

据我所知,您希望获取页面中的所有文本,但它存储在具有不同ID的不同标记中,因此通过所有标记和ID将是一项大任务。

只需获取所有文字:

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

它将获取文档正文中的文本,无论元素类型或ID。

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

答案 3 :(得分:1)

使用JavaScript,您需要找到该元素并抓住innerText

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

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

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

EXAMPLE

答案 4 :(得分: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));
  });
}

working example