如何使用CHEERIO.js这个HTML?

<div class="A"> <section class="B" data-vr-zone="B"> <header class="C"> BarFoo</header> <ul class="list"> <li data-vr-contentbox=""> <a href="http://www.foobar.com/.../html"> <small>BarBar</small> <span>Foo Bar foobarbar FooFoo?</span> </a> </li> <li data-vr-contentbox=""> <a href="http://www.foofoobar.com/.../html"> <small>BarBarBar</small> <span>Foo foo FooFoo?</span> </a> </li> 

我想访问HREF属性中的URL。 而SPAN中的文本 – 只有第一个列表项。

我有什么作品,但我期待学习更好的方法。

var url = $('div .A').children().children().children().children()[0].attribs.href;

var title = $('div .A').children().children().children().children()[0].children[2].children[0].data;

您想要使用更好的select器string来定位感兴趣的元素和属性。 具体而言,你的模糊或精确涉及到对于DOM结构过于紧密的权衡,因此对HTML的一些无关紧要的改变意味着你的select器不再匹配,或者使用太模糊的select器并且匹配比你想要的更多的东西。

  • vaguest: 'a' (find每个锚点)
  • '.A a' (div class =“A”中的每个锚点)
  • 推荐: '.A li a' (必须是列表的一部分)
  • 疯狂具体: 'div.A section.B ul.list li a'

 var link = $('.A li a'); var href = link.attr('href'); var spanText = link.find('span').first().text();