Cheerio.js和使用dom的子集

时间:2015-07-20 15:25:36

标签: javascript jquery html cheerio

在阅读dom并使用cheerio.js使用简单的node.js应用程序时,我遇到了一些问题(可能是误解了soemthing)。

我使用请求从网站抓取html并且cheerio导航它找到某些部分。 作为示例,html看起来像这样....

<html>
  <body>
    <table>
      <tr><td class="title"/>Title 1</td></tr>
      <tr>
        <td>
          <table>
            <tr>
              <td class="dl">Some Name1</td>
            </tr>
          </table>
        <td>
      </tr>
      <tr><td class="title"/>Title 2</td></tr>
      <tr>
        <td>
          <table>
            <tr>
              <td class="dl">Some Name2</td>
            </tr>
          </table>
        <td>
      </tr>
      <tr><td class="title"/>Title 3</td></tr>
      <tr>
        <td>
          <table>
            <tr>
              <td class="dl">Some Name3</td>
            </tr>
          </table>
        <td>
      </tr>
    </table>
  </body>
</html>

想要做什么找到 td 的所有实例,其中标题 抓住每个标题文本,然后在 td 中使用 dl 类获取名称。

到目前为止

$('td[class=title]') 

将为我提供该类的所有 td 并使用每个函数

$('td[class=title]').each(function(i, elem) 

让我从每个文本中抓取文本,但是我想获取标题,然后使用 dl 类获取下一个 td ,然后再转到下一个标题。

我想我真正要问的是,我可以获得td.dl元素 $(&#39; td [class = title]&#39; .each功能?

1 个答案:

答案 0 :(得分:0)

是的,你可以:

  .each(function(){
     $(this).parent().next().find('td.d1').text()
   })