【问题标题】:Is there simple way to get array from td elements on page? (node.js/cheerio/jQuery)有没有简单的方法从页面上的 td 元素获取数组? (node.js/cheerio/jQuery)
【发布时间】:2018-02-27 14:19:34
【问题描述】:

我正在使用 node.js/cheerio(与 jQuery 语法相同)来解析页面。 当我使用时:

$ = cheerio.load(body);
console.log($('.td-title a').text());

我的控制台中有很长的字符串,来自“mainaboutcontactusprofile”等字样。如何制作一个 td 文本数组?

【问题讨论】:

    标签: javascript jquery node.js web-scraping cheerio


    【解决方案1】:

    所提供的答案都对我不起作用,但确实如此。

    let arr = $('.td-title a').toArray().map((x) => { return $(x).text()});
    

    信用:Github

    【讨论】:

      【解决方案2】:

      jQuery's map()

      console.log($("td").map(function(){ return this.textContent}).get());
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <table>
        <tr>
          <td>a</td>
          <td>b</td>
          <td>c</td>
        </tr>
      </table>

      【讨论】:

        【解决方案3】:

        我建议为此使用 jQuery 的 $.map() 函数。它根据一组匹配的元素创建一个数组:

        var textArray = $('.td-title a').map( function(index, domElement) {
           return domElement.innerText;   //each element input gets turned into text output
        });
        console.log( textArray );
        

        详情请见http://api.jquery.com/map/

        【讨论】:

          【解决方案4】:

          在 JavaScript 中 只需 document.getElementsByTagName("td") 返回所有 td 的数组

          使用 jQuery 你应该使用类似 $('#table1 td') 的东西

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-05-30
            • 2021-08-26
            • 2021-02-25
            • 1970-01-01
            • 2010-11-29
            • 1970-01-01
            • 2015-08-04
            • 2012-03-20
            相关资源
            最近更新 更多