$(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。
答案 0 :(得分: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 ;