jquery / cheerio:如何选择多个元素?

时间:2015-09-18 13:28:30

标签: node.js jquery-selectors cheerio

我需要从html页面解析一些与此类似的标记:

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

我需要伦敦

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

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

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

没有成功......

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

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

2 个答案:

答案 0 :(得分:0)

有一个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();

答案 1 :(得分:0)

$('a').text();

将获得文本为“伦敦”。