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'。
我需要从 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'。