【发布时间】:2014-02-07 10:27:57
【问题描述】:
为什么在这个 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 源和调试,项目具有所有值,但是当我查看子函数中的参数时,它们都是未定义的 :(
编辑
修复了这个问题,因为 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文件等。
【问题讨论】:
-
它没有。发布minimal, complete example demonstrating the problem you're having。以上将正常工作。如果
item确实具有a、b和c属性,则它们的值将传递给AnotherMethods。 (旁注:您使用的是AnotherMethods的返回值,但它不返回任何内容。) -
@T.J.Crowder 谢谢,马上修改代码并尽快发布
-
@yaron 请考虑了解有关 jQueri API 的更多信息。
onclick可能不应该存在(使用 .click 代替)-此外,您可能不想混合数据和演示文稿。 -
@BenjaminGruenbaum 感谢您的建议,现在将在我的代码中实现它。