jquery/cheerio:如何select多个元素?

jquery / cheerio: how to select multiple elements?

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

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

我需要去伦敦

我确实尝试过类似的东西(使用 cheerio):

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

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

没有成功...

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

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

有一个 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/

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

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

然后

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

将得到文本 'London'。