[英]Javascript Object array does not return correct value?
我有一个返回对象的JavaScript函数。 我将该对象存储在myarray对象中,并尝试使用switch返回匹配的值。 当我返回匹配的值(即“ undefined”)时,它给我错误的结果
请阅读下面的代码及其注释
parseobjectarray('description') // "undefined"
function parseobjectarray(attribute) {
var returnval;
$(document).ready(function () {
var myArray = new Object();
myArray = ParsePagetags(); // returns an object
switch (attribute) {
case 'description':
returnval = myArray.description;
//alert(returnval); // shows correct result
break;
default:
returnval = "";
}
//alert(returnval); // shows correct result
});
alert(returnval); // shows incorrect result i.e "undefined"
return returnval; // shows incorrect result i.e "undefined"
}
为什么???
你的:
alert(returnval);
不在以下范围内:
$(document).ready(function () {
});
尝试:
$(document).ready(function () {
function parseobjectarray(attribute) {
var returnval;
var myArray = new Object();
myArray = ParsePagetags(); // returns an object array
switch (attribute) {
case 'description':
returnval = myArray.description;
alert(returnval); // shows correct result
break;
default:
returnval = "";
}
alert(returnval); // shows correct result
return returnval;
}
parseobjectarray(yourAttribute);
});
$(document).ready()
将在alert(returnVal)
之后运行。
您的架构完全错误。 您正在初始化变量,然后调用$(document).ready()
方法,尝试警告returnval
变量,然后返回该变量。
尝试以下结构:
function parseobjectarray(attribute) {
var returnval;
var myArray = new Object();
myArray = ParsePagetags(); // returns an object
switch (attribute) {
case 'description':
returnval = myArray.description;
alert(returnval); // shows correct result
break;
default:
returnval = "";
}
alert(returnval); // shows correct result
return returnval;
}
$(document).ready(function(){
parseobjectarray(attribute);
});
$(document).ready()
用于在加载文档后建立事件侦听器或触发指定的函数。 如果您希望在文档加载后触发该函数并且希望该函数被重用,请从方法内部移动函数声明,然后分别调用该函数。
如果该函数不会被重用,则可以将函数声明保留在$(document).ready()
函数中。
在函数中是否有$(document).ready(...的特殊原因?尝试不使用document.ready ...
function parseobjectarray(attribute) {
var returnval;
var myArray = new Object();
myArray = ParsePagetags(); // returns an object array
switch (attribute) {
case 'description':
returnval = myArray.description;
alert(returnval); // shows correct result
break;
default:
returnval = "";
}
alert(returnval); // shows incorrect result i.e "undefined"
return returnval;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.