【问题标题】:Selecting non-tagged text in div在 div 中选择非标记文本
【发布时间】:2013-08-22 19:52:12
【问题描述】:

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

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

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

【问题讨论】:

  • 您要选择div的部分内容还是全部?
  • 我想我没问清楚。我本质上是在寻找一种方法来获取文本周围的所有标签。即,类似于 $('h1, p, h2, h3, h4, a')。但是我没有听说过文本方法,所以谢谢大家!我认为我的解决方案只是浏览页面并煞费苦心地列出所有特定的 div 类(因为只执行 $('div') 需要一段时间才能加载。

标签: javascript jquery html css


【解决方案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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      Codepen link

      【讨论】:

      • 这没有意义?只是做$('div').css('color', 'blue'); 会做同样的事情吗?
      • 当然。这只是一个例子。 OP 可以在函数中执行多项操作,但是是的,您是对的,您可以只执行 .css() :),也许不是最好的示例。重点是.text()
      【解决方案4】:

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

      像这样简单地获取所有文本:

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

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

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

      【讨论】:

        【解决方案5】:

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

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

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

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

        EXAMPLE

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-05
          • 2014-01-27
          • 2010-11-13
          • 2013-10-01
          相关资源
          最近更新 更多