【问题标题】:jquery / cheerio: how to select multiple elements?jquery/cheerio:如何选择多个元素?
【发布时间】:2015-12-15 16:15:05
【问题描述】:

我需要从一个 html 页面解析一些类似于这个的标记:

<a href="#">
  <i class="icon-location"></i>London
</a>

我需要去伦敦

我确实尝试过(使用cheerio):

$('a', 'i[class="icon-location"]').text();

$('a > i[class="icon-location"]').text();

没有成功...

我想避免使用像next() 这样的方法,因为应该将表达式传递给只从选择器中提取文本的方法。

我应该使用什么表达方式(如果可行的话)?

【问题讨论】:

    标签: node.js jquery-selectors cheerio


    【解决方案1】:
    $('a').text();
    

    将获得文本为“伦敦”。

    【讨论】:

      【解决方案2】:

      有一个solution,这很不寻常,但它有效:

      $("#foo")
          .clone()    //clone the element
          .children() //select all the children
          .remove()   //remove all the children
          .end()  //again go back to selected element
          .text();
      

      演示: https://jsfiddle.net/2r19xvep/

      或者,你可以用一个新标签包围你的值,这样你就可以选择它:

      <i class="icon-location"></i><span class="whatever">London</span>
      

      然后

      $('.whatever').text();
      

      【讨论】:

      • 谢谢!但是,我无法控制必须解析的 HTML,它位于公共页面内...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多