JavaScript未定义对象,即使它在F12检查时显示数据

JavaScript未定义对象,即使它在F12检查时显示数据,javascript,Javascript,任何人都可以帮助解决这个错误 代码如下: $(document).ready(function(){ var certifications = { nextCert : 0, data : [ { "imgSrc" : "http://res.cloudinary.com/sharek/image/upload/v1460011761/UC-PJNHKQ02_r1gjmj.jpg" }, { "imgSrc" : "http://res.cloudi

任何人都可以帮助解决这个错误

代码如下:

$(document).ready(function(){

var certifications = {
  nextCert : 0,
  data : [
   {
      "imgSrc" : "http://res.cloudinary.com/sharek/image/upload/v1460011761/UC-PJNHKQ02_r1gjmj.jpg"
   },
   {
  "imgSrc" : "http://res.cloudinary.com/sharek/image/upload/v1460011761/UC-KE5C95GA_aid30q.jpg"
   }
  ],
  getNextCert : function(){
    if(this.nextCert === this.data.length){
      this.nextCert = 0;
    }
    else{
      this.nextCert += 1;
    }
    return this.nextCert;
  },
  getCurrentCert : function() {
    return this.nextCert;
  },
  getImgCert : function() {
      return this.data[this.getNextCert()];
  }

};//certification object

var certContainer = $('#cert-container').html

var templateItem = $(certContainer);
templateItem.find('.img-responsive').attr('src',certifications.getImgCert()['imgSrc']);

 $('#nextBtn').click( function(){
    console.log(certifications.getImgCert()['imgSrc']);
    templateItem.find('.img-responsive').attr('src',certifications.getImgCert()['imgSrc']);

  });

});//document.ready
这里是我正在处理的所有主页:


非常感谢

这是因为getNextCert函数返回的索引超出了certifications数组的范围。当nextCert为1时,检查它是否超出数组的界限的检查将通过,因此您的代码将nextCert增加到2,并返回未定义的
data[2]
。您需要更改getNextCert函数:

  getNextCert : function(){
    this.nextCert += 1;
    if(this.nextCert === this.data.length){
      this.nextCert = 0;
    }
    return this.nextCert;
  },

var certifications
移到文档外部。readyHi mplungjan,我尝试了您所说的方法,但没有帮助,我只是忘记了说certifications变量中有数据,脚本正在工作,即使它仅在控制台中显示错误。谢谢你,你还需要测试这个。下一个测试在递增后回答Hanks mplungjan,这就是问题所在。我感谢你的帮助。。。