通过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,脚本就会停止,所以我认为是参数出错了。我想指出的是,pp
和dd
什么都不是,只是空的未定义参数的占位符。
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;
}
根据您提供的信息,最好的猜测是:代码中是否有var foo?Javascript没有块级别的作用域,这些作用域被提升到函数的顶部,var foo lower可能会改变你的foo值。
相关文章:
- Javascript-将包含变量的html字符串作为参数传递
- 是否可以在 Javascript 中将未声明的变量作为参数传递
- 在构造控制器、服务等时作为函数参数传递之前列出的角度 JS 变量
- innerHTML在onClick事件中将变量作为参数传递
- 是否需要初始化在 Javascript 中作为“类”构造函数参数传递的变量
- 为什么我不能将角度变量作为函数参数传递
- 不能将变量作为参数传递到 onClick 函数中
- 将变量作为 URL 参数传递到 xmlHTTPRequest 中
- 在 PHP 循环中调用 js 函数,同时将 php 变量作为参数传递给其中一个函数
- AngularJS将范围变量名称作为函数参数传递
- 如何在 JavaScript onclick 函数中传递带有 / 作为参数的变量
- 将函数作为参数传递,内部带有变量 - 可能
- 如何将 xsl 变量作为参数传递给脚本标记中的 javascript 函数
- 这在JavaScript函数中,是指通过参数传递的变量
- 正确的方法:始终将所有变量作为函数参数传递
- 使用 HTML onClick 将 PHP 变量作为参数传递
- 如何将控制器变量作为 AngularJS $resource请求的参数传递
- 如何在 PHP 的 OnClick 函数中将带有空格的变量作为参数传递
- 将变量参数传递给函数 - JavaScript
- 通过Javascript中的参数传递变量