无法读取未定义的属性长度(空容器警报消息)

时间:2019-02-21 02:15:25

标签: jquery mustache

如果“匹配项”表示为小胡子模板,那么在其中我想返回一条警告消息,指出“没有匹配项”和“可用匹配项”,该如何实现代码。它在else语句上工作正常,但是在if语句上,它什么也不返回。这是代码:

$.each(data.matches, function() {
               var match = this;
                if(this.matches == 0){
                    alert('no matches');
                }
                else{
                    alert('matches available');
                }
                $contents += Mustache.render(container, this);
            });

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

据我了解,您data对象和该对象列表matches中 看起来如果没有匹配项,它将返回undefined而不是空数组[] 因此会引发异常无法读取未定义的属性长度

因此您将返回空数组,不包含任何匹配项,或者在按如下所示遍历列表之前检查匹配对象

if(!data.matches){
   alert('no matches');
}
else{
   alert('matches available');
   $.each(data.matches, function() {
          var match = this;
          $contents += Mustache.render(container, this);
   });
}