Javascript 在div中选择未标记的文本

Javascript 在div中选择未标记的文本,javascript,jquery,html,css,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> var t = $("body").text(); var arr = new Array('P','SPAN','SCRIPT'); $(document).ready(function(

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

<div class="class">Here's some text that really should be in a p tag, but oh well</div>
var t = $("body").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));
  });
}
这里有一些文本确实应该放在p标记中,但是哦

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

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

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

$('div').text();

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

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

$('div').text();

如果您愿意,您可以在
div
中获取“文本”,而不必考虑类。在本例中,我使用CSS影响文本

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

如果您愿意,您可以在
div
中获取“文本”,而不必考虑类别。在本例中,我使用CSS影响文本

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

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

只需按如下方式获取所有文本:

<div class="class">Here's some text that really should be in a p tag, but oh well</div>
var t = $("body").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的不同标签中,因此遍历所有标签和id将是一项艰巨的任务

只需按如下方式获取所有文本:

<div class="class">Here's some text that really should be in a p tag, but oh well</div>
var t = $("body").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


请参阅此提琴作为参考:

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

使用jQuery,您可以使用以下方法:


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

使用jQuery,您可以使用以下方法:


您只需要获取标记中提供的文本,在这种情况下,$('body').text()或$('div').text()都会给出错误的结果,因为它们会给出其中的所有文本,无论子元素的标记是什么

您应该编写如下代码:

<div class="class">Here's some text that really should be in a p tag, but oh well</div>
var t = $("body").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));
  });
}

您只需要获取标记中提供的文本,在这种情况下,$('body').text()或$('div').text()都会给出错误的结果,因为它们会给出其中的所有文本,无论子元素的标记是什么

您应该编写如下代码:

<div class="class">Here's some text that really should be in a p tag, but oh well</div>
var t = $("body").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));
  });
}

可能重复您想选择div的部分内容还是整个内容?我想我没有问清楚。我本质上是在寻找一种方法来抓取文本周围的所有标签。也就是说,类似于$('h1,p,h2,h3,h4,a')。但是我没有听说过文本方法,所以谢谢大家!我认为我的解决方案就是浏览页面,仔细列出所有特定的div类(因为只做$('div'))加载需要一段时间。可能是重复的。你想选择div的部分内容还是整个内容?我想我没有问清楚。我基本上是在寻找一种方法来抓取文本周围的所有标记。例如,类似$('h1,p,h2,h3,h4,a')。但是我没有听说过文本方法,所以谢谢大家!我想我的解决方案就是浏览页面,仔细列出所有特定的div类(因为只加载$('div')需要一段时间。这没有意义吗?只需执行
$('div').css('color','blue'));
会做完全相同的事情吗?当然。这只是一个例子。OP可以在函数中做多种事情,但你是对的,你可以只做
.css()
:),也许不是最好的例子。主要的一点是
.text()
没有意义?只做
$('div')。css('color','blue'));
会做完全相同的事情吗?当然。这只是一个例子。OP可以在函数中做很多事情,但是你是对的,你可以只做
.css()
:),也许不是最好的例子。要点是
.text()