【问题标题】: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') 的东西