2013-02-26 24 views
0

在這裏我有一段代碼,我一直在Firebug上進行調試。我想知道如何將我的參數foo傳遞給函數getHoliday(param,param,param)。這是我的XMLHttpRequest中的代碼塊。通過Javascript中的參數傳遞變量

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前兩個參數是未使用的,直到在後面的過程。我想先加載getHoliday與數組foo的數據,所以在將來我可以使用foo,如下所示。只要我的斷點到達getHoliday,腳本就會停下來,所以我相信這是錯誤的參數。我想指出,ppdd什麼都不是,只是放置空的未定義參數。我剛剛通過

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; 
} 
+0

'xhro.responseXML'已經是XML文檔對象了,您幾乎不需要解析它。請告訴我們'parseXML'的功能,它似乎返回'undefined' – Bergi 2013-02-27 00:03:53

+1

提醒foo哪裏得到那個結果? – Brad 2013-02-27 00:05:28

+1

順便說一句,在JavaScript中,你不能聲明變量類型。所有這些'= new Array()'調用都是無意義的。 – Bergi 2013-02-27 00:07:28

回答

0

給你提供的信息,最好的猜測:你在代碼中有VAR富較低? Javascript沒有塊級的範圍設定,這些會被掛到函數的頂部,而var foo lower可能會改變你的foo值。