我正在尝试从WEB收集信息,但是如果一页中有2个元素,则信息存储在同一obj行中。如何在不同的行中存储信息? 代码:
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('#ctl00_MainContent_ipcAvaDay_upnlResultOutbound').each((e, el) => {
var arrival_airport = $(el).find('.rowinfo2 td:nth-child(2)').text();
var alio = [arrival_airport];
和console.log即时通讯是
[RigaRiga]
代替
[Riga]
[Riga]
也许有一些想法?
答案 0 :(得分:2)
当在元素集合上调用text()
时,jQuery会将所有值连接到单个字符串中。
如果要创建所有单独值的数组,请使用map()
:
var arrival_airport = $(el).find('.rowinfo2 td:nth-child(2)').map(function() {
return $(this).text();
}).get();
console.log(arrival_airport);
答案 1 :(得分:0)
为清楚起见,可以在ES6之前的版本以及ES6 +箭头功能中避免使用.grid > li {
color: #fff;
}
.text.grid > li {
color: #000;
}
:
ES6之前的版本(否this
):
this
ES6:
var airports = $(el).find('.rowinfo2 td:nth-child(2)').map(function(i, el) {
return $(el).text();
}).get();
请勿在这些代码块中使用let airports = $(el).find('.rowinfo2 td:nth-child(2)').map((i, el) => $(el).text()).get()
,因为它很怪异并且会引起混乱。