我试图在我的URL变量中将URL归零到页面上li标签中包含的URL。它应该很简单,但我无法让它工作。我得到了正确的元素数量,但它们都是空的。text()返回'' & html()返回null。我在这里做错了什么?
const cheerio = require('cheerio');
const request = require('request');
function getHistory(){
let url = 'http://coinmarketcap.com/historical/';
request(url,(error,response,html)=>{
var $ = cheerio.load(html);
$('li.text-center').each((i,element)=>{
var omg = $(this).html();
console.log(omg);
});
});
}
字符串
2条答案
按热度按时间kmb7vmvb1#
因为这段代码是在一个箭头函数中(它保留了this的词法值,而不是
.each()
设置它的值),所以this
的值没有设置为你想要的值。如果你改变了这个:字符串
对此:
型
你会看到你所期待的HTML。
请注意,您也可以将箭头函数更改为常规函数,然后
.each()
设置的this
的任何值都将生效。如果你真正想要的是
href
,那么你应该用你的选择器来定位<a>
标签,并从中获取实际的href
属性。你可以这样做:型
w6mmgewl2#
这是因为你在一个 *arrow函数 * 中引用了
this
,而这个函数并没有自己生成this
。