2015-04-02 77 views
-1
 $(function() { 


var retrievedtext1 = localStorage.getItem('t1'); 
var retrievedtext2 = localStorage.getItem('t2'); 

     retrievedtext1=JSON.parse(retrievedtext1); 
     retrievedtext2=JSON.parse(retrievedtext2); 


    document.getElementById("option1").innerHTML = retrievedtext1; 

    document.getElementById("option2").innerHTML = retrievedtext2; 

      var changeq=0; 
    var obj= OS.length; 

    console.log(obj); 
      document.getElementById("element").src =OS[changeq].image ; 

    $('#Fairly1').click(function() { 

     alert('value = 1'+"--"+OS[changeq].image); 

      changeq +=1; 

     document.getElementById("element").src = OS[changeq].image ; 


     if (changeq>=OS.length){ 

      window.location.assign("start.html"); 

     } 



}); 
    $('#between').click(function() { 
      alert('value = 2'+"--"+OS[changeq].image); 
     changeq +=1;    
     document.getElementById("element").src = OS[changeq].image ; 

}); 
    $('#Both').click(function() { 
      alert('value = 5'+"--"+OS[changeq].image); 
     changeq +=1;    
     document.getElementById("element").src = OS[changeq].image ; 

}); 
    $('#Non').click(function() { 
      alert('value = 6'+"--"+OS[changeq].image); 
     changeq +=1;    
     document.getElementById("element").src = OS[changeq].image ; 

}); 
    $('#x').click(function() { 
      alert('value = 4'+"--"+OS[changeq].image); 
     changeq +=1;    
     document.getElementById("element").src = OS[changeq].image ; 

}); 
    $('#Fairly2').click(function() { 
      alert('value = 3'+"--"+OS[changeq].image); 
     changeq +=1;    
     document.getElementById("element").src = OS[changeq].image ; 

}); 

     }); 


    function goBack() { 
    window.history.back(); 
} 

我不断收到此错误:Uncaught TypeError: Cannot read property 'image' of undefined未捕获TypeError:无法读取属性undefined的图像

我希望它能够在我遍历JSON对象之后,重定向到另一个页面并保存用户在一个数组中执行的操作,以便稍后将其发送到数据库。

+1

什么是变量'OS'?你应该做一个'console.log(OS [changeq]);'因为它可能是'undefined',因此当你尝试引用OS [changeq] .image'时会出错。对于我们来说,真的没什么可做的,因为您的数据probalby不是您认为的那样,所以您在尝试访问不存在的内容时遇到错误。 – jfriend00 2015-04-02 01:15:53

+2

什么是不清楚的错误信息?你的问题是什么? – 2015-04-02 01:16:43

+0

OS是JSON对象,我已经编码工作并显示图片和循环,但我想在完成循环后将用户引导到另一个页面,并试图使用if和JSON对象数组进行比较。通常当我做var obj = OS.length; console.log(obj);我得到的数组长度和操作系统[changeq]。图像给我的图像源,所以我可以显示它 – user4620367 2015-04-02 01:31:18

回答

0

考虑

changeq +=1; 
document.getElementById("element").src = OS[changeq].image ; 

您正在增加changeq首先,访问OS[changeq].image之前。您不检查changeq是否仍然是数组中的有效索引!

最简单的解决方案是切换线路。如果因为它改变了期望的行为那是不可能的,将检查中之间:

changeq +=1; 
if (changeq>=OS.length){ 
    window.location.assign("start.html"); 
    return; 
} 
document.getElementById("element").src = OS[changeq].image ; 
+0

它可以工作,但我现在有另一个问题,现在它开始时。它从数组中的第一张图片[0]开始,然后我点击相当的按钮,它再次显示第一张图片,直到我再次点击它,因为我在显示图片后增加了changeq – user4620367 2015-04-02 02:15:48

+0

这就是为什么我在最后建议一种替代解决方案。或者你当然可以用'1'而不是'0'来初始化'changeq'。 – 2015-04-02 02:18:45

+0

谢谢Felix .... – user4620367 2015-04-02 02:34:11

相关问题