为什么在这个JavaScript方法中传递参数使得它的属性未定义,这就是我现在正在尝试的,
$.each(data.GetSomeRestMethodResult, function (index, item) {
$("#sTable").append(AnotherMethods(item.a, item.b, item.c));
});
function AnotherMethods(a, b, c) {
alert(a +" - "+ b +" - "+ c);
var r = "<tr class='Row' onclick='LoadDetails(" + a + b + c ")'></tr>"
}
现在,如果我使用chrome Sources和debug,item有所有值,但是当我查看子函数中的参数时,它们都是未定义的:(
修改
解决了这个问题,因为WCF Web服务正在发送特定类型对象的数组(我自己更改了但忘了更新JS)但是下面是对我有用的,
$.each(data.GetSomeRestMethodResult.TYPEOFOBJECT, function (index, item) {
$("#sTable").append(AnotherMethods(item.a, item.b, item.c));
});
function AnotherMethods(a, b, c) {
alert(a +" - "+ b +" - "+ c);
var r = "<tr class='Row' onclick='LoadDetails(" + a + b + c ")'></tr>"
}
以上代码是手写的,抱歉我无法发布所有代码,因为它太多了@ webservices,完整的js文件等。
答案 0 :(得分:2)
(根据您的更新更新)
问题是你使用AnotherMethods
的返回值(将返回值传递给append
),但AnotherMethods
实际上并没有返回任何内容。它只是创建一个变量r
。您还遇到语法错误(+
之后缺少c
)。
这适用于:例如:
$.each(data.GetSomeRestMethodResult, function (index, item) {
$("#sTable").append(AnotherMethods(item.a, item.b, item.c));
});
function AnotherMethods(a, b, c) {
return "<tr class='Row' onclick='LoadDetails(" + a + b + c + ")'><td>Row for " + a + ", " + b + ", " + c + "</td></tr>";
}