簡體   English   中英

通過Javascript中的參數傳遞變量

[英]Passing variables through parameters in Javascript

在這里,我有一段代碼已經通過Firebug調試過。 我想知道如何將參數foo傳遞到函數getHoliday(param,param,param) 這是我的XMLHttpRequest中的代碼塊。

if (XMLHttpRequestObject.readyState==4 && XMLHttpRequestObject.status == 200)
{
    var pp = null
    var dd = null
    var xmlResponse = XMLHttpRequestObject.responseXML;
    var foo = new Array();
    foo = parseXML(xmlResponse);
    getHoliday(pp,dd,foo);
} 

getHoliday的前兩個參數在該過程的后期才使用。 我想首先使用數組foo中的數據加載getHoliday ,以便將來我可以如下所示使用foo。 一旦我的斷點到達getHoliday,腳本就會停止,因此我相信這是錯誤的參數。 我想指出的是, ppdd都不是,只是將空的undefined參數保留。

function getHoliday(monthSelected,theday,names)
{   
    var HolidayName = new Array();
    var holiday = ""
    HolidayName = names;  
    monthSelected = monthSelected + 1;
    for(var index = 0; HolidayName.length >= index; index++)
    {   
        if(HolidayName[index] == monthSelected && HolidayName[index+1] == theday)
        {
            holiday = HolidayName[index+2]
        }
    }
    return holiday
}

我一到這里,剛通過的names數組就變得不確定。 為什么? 以下是HolidayName數組的外觀。

HolidayName = new Array(2,4,"Party--12:00",2,22,"Eventalist Launch--6:00",2,18,"Play Day--12:00",3,17,"Play Day--12:00"););

當警告foo ,結果為:

2,4,"Party--12:00",2,22,"Eventalist Launch--6:00",2,18,"Play Day--12:00",3,17,"Play Day--12:00"

這是parseXML

function parseXML(xmlData)
{
    var aOutput=document.getElementById("testing2");
    var events = xmlData.getElementsByTagName('year').length;
    for(var i=0;i< events;i++)
    {
        var eYear = xmlData.getElementsByTagName('year')[i].firstChild.nodeValue;
        var eMonth = xmlData.getElementsByTagName('month')[i].firstChild.nodeValue;
        var eDay = xmlData.getElementsByTagName('day')[i].firstChild.nodeValue;
        var eHour = xmlData.getElementsByTagName('hours')[i].firstChild.nodeValue;
        var eMinute = xmlData.getElementsByTagName('minutes')[i].firstChild.nodeValue;
        var eTitle = xmlData.getElementsByTagName('title')[i].firstChild.nodeValue;
        var holiStr = '"' + eTitle + "--" + eHour  +":"+ eMinute + '"';
        setup.push(eMonth,eDay, holiStr);
    }
    return setup;
}

鑒於您提供的信息,最好的猜測是:代碼中的變量foo foo較低嗎? Javascript沒有塊級作用域,並且將它們提升到函數的頂部,而var foo較低則可能會更改您的foo值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM