我需要从html页面解析一些与此类似的标记:
<a href="#">
<i class="icon-location"></i>London
</a>
我需要伦敦。
我确实尝试过(使用cheerio
):
$('a', 'i[class="icon-location"]').text();
或
$('a > i[class="icon-location"]').text();
没有成功......
我想避免像next()
这样的方法,因为表达式应该传递给一个只从选择器中提取文本的方法。
我应该使用什么表达式(如果可行的话)?
答案 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();
将获得文本为“伦敦”。