0
我有一个javascript问题,我很困惑它。我似乎无法弄清楚为什么一个函数返回一个数组(它是一个数组),但另一个函数返回undefined。父窗口说变量是未定义的,但子窗口具有值
问题:为什么一个函数返回一个数组,但其他在父窗口返回undefined?
因此,与一些背景我有一个数据发送回父窗口一个javascript孩子。现在它只发送整数,所以没有太大或有问题。信息保存在父窗口中。子窗口唯一做的就是发回信息。 (基本上说“哦这是被选中的”)。
子窗口
else{
if(document.getElementById("embroid"+embroideryID).checked == false){
parent.EmbroideryDataReturned("add", embroideryID);
document.getElementById("embroid"+embroideryID).checked = true;
}
else{
parent.EmbroideryDataReturned("remove", embroideryID);
document.getElementById("embroid"+embroideryID).checked = false;
}
}
function SelectedEmbroideries(){
var embroideries = parent.EmbroideryDataReturned("get", 0);
for(i = 0; i < embroideries.length; i++){
document.getElementById("embroid"+embroideries[i]).checked = true;
}
}
父窗口
var embroidArray = new Array();
function EmbroideryDataReturned(mode, embroidID){
if(mode == 'add'){
embroidArray.push(embroidID);
//alert(mode + " " + embroidID + " Array is now: \n"+ embroidArray);
return;
}
else if(mode == 'remove'){
embroidArray.splice(embroidArray.indexOf(embroidID), 1);
//alert(mode + " " + embroidID + " Array is now: \n"+ embroidArray);
return;
}
else if(mode = 'get'){
return embroidArray;
}
}
父窗口中,在警报,正确地显示阵列。但是,当它运行更新时,该函数表示该值未定义。什么导致这个问题?
它应该是'parent.window.EmbroideryDataReturned' – adeneo
此函数中的最后一个'if'语句有一个'='它应该(可能)具有'=='或'==='。 – Pointy
@adeneo赞赏,但它并没有真正做任何事情。虽然我明白你为什么这么说=)。尖刻,谢谢!我错过了。 – Twister1002