jQuery find('#selector')。长度导致Chrome控制台出错

时间:2015-08-02 00:59:41

标签: javascript jquery

我读过的所有内容都说这是测试jQuery的find()是否匹配的正确方法:

var myVar = $(this).find('#gallery');
if (myVar.length) {
    alert('found');
} else {
    alert('not found');
}

这确实可以正常工作,但是只要找不到该元素,Chrome就会在控制台中抛出此错误:

Uncaught TypeError: Cannot read property 'length' of undefined

有没有更简洁的方法来测试find()是否匹配任何东西 - 一个不在控制台中输出错误的方法?我必须运行这个比较数十次,我觉得编程错误地解决控制台错误是不好的。

更新:我正在查看错误的文件,并在上面发布了错误的代码。 $(this).find('#gallery')。length确实是检查是否存在匹配的正确方法,并且不会在Javascript控制台中抛出错误。

我试图删除这个问题,但我不允许这样做。离开这里,希望其他人觉得它有用。

1 个答案:

答案 0 :(得分:1)

为什么不使用if (myVar != undefined && myVar.length)