Uncaught TypeError: Cannot read property 'image' of undefined

Uncaught TypeError: Cannot read property 'image' of undefined

     $(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

我想要它以便在我循环遍历 JSON 对象后,我重定向到另一个页面并将用户所做的保存在一个数组中以便稍后将其发送到 db。

考虑

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 ;