当检查一个变量的长度时,如果变量未定义,则会出现Javascript的错误提示信息"Cannot read property 'length' of undefined"。

8 浏览
0 Comments

当检查一个变量的长度时,如果变量未定义,则会出现Javascript的错误提示信息"Cannot read property 'length' of undefined"。

我正在构建一个使用cheerio解析DOM的node爬虫。这其实更多是一个纯JavaScript的问题。在我的爬取过程中,我将一些内容加载到一个变量中,然后检查该变量的长度,如下所示:

var theHref = $(obj.mainImg_select).attr('href');

if (theHref.length){

// 做一些操作

} else {

// 做其他操作

}

这个方法工作得很好,直到我遇到一个不存在$(obj.mainImg_select).attr('href')的URL。我认为我的theHref.length检查会处理这个情况,并跳过到else: do other stuff语句,但实际上我得到了以下错误:

TypeError: Cannot read property 'length' of undefined

我在这里做错了什么,如何修复?

0