父窗口表示变量未定义,但子窗口具有值

时间:2014-01-06 16:40:37

标签: javascript

我有一个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;
    }
}

警报中的父窗口正确显示阵列。但是,当它运行更新时,该函数表示该值未定义。是什么导致了这个问题?

1 个答案:

答案 0 :(得分:1)

我发现有一个参数正在传递,与我试图使用的变量同名。所以我的错!谢谢你的帮助!