当使用Cheerio和NodeJS进行search时,Object#<Object>没有方法'attr'

当在Node JS中跟随一个关于网页抓取的教程时,我在terminal中运行这个脚本时遇到了这个问题:

Object #<Object> has no method 'attr' 

这是我正在使用的脚本:

 var request = require('request'), cheerio = require('cheerio'), urls = []; request('http://www.reddit.com', function (err, resp, body) { if (!err && resp.statusCode == 200) { var $ = cheerio.load(body); $('a.title', '#siteTable').each(function() { var url = this.attr('href'); urls.push(url) }); console.log(urls); } }); 

任何想法如何解决这个脚本,所以它不会抛出一个错误? 任何帮助将非常感激!

范围对象this不是默认的jQuery对象。

 var url = this.getAttribute("href"); // or var url = $(this).attr("href");