如何在Javascript中异步更新动态生成的HTML控件

时间:2014-09-15 15:44:58

标签: javascript web-services

我有一个方法getTextContent,它将通过用户的点击间接调用(方法getTextContent将传递给API函数,该函数会将其注册到某个事件中)。

该方法返回一个字符串,该字符串只是一个HTML字符串,然后在API生成的控件中显示给用户。

我想要做的是异步更新其中一个HTML控件。我相信我可以创建一个唯一ID,并使用该ID命名该HTML控件以进行alter reference。

我的挂断是这样的:如何将唯一ID传递给Web服务的返回/成功方法(SucceededCallback)。

Webservice1.Foo(param1, SucceededCallback, FailedCallback);

所以我有一个像

这样的功能
function SucceededCallback(result, uniqueID) {
   document.getElementById(uniqueID).value = result;
}

我想我可以创建一个全局变量,但这似乎不合适

1 个答案:

答案 0 :(得分:1)

您可以使用Function.prototype.bind将上下文绑定到函数。

Webservice1.Foo(param1, SucceededCallback.bind(uniqueID), FailedCallback.bind(uniqueID));

然后函数将是:

function SucceededCallback(result) {
    document.getElementById(this).value = result;
}

或者您可以使用闭包:

Webservice1.Foo(param1, function(result) {
    SucceededCallback(result, uniqueID);
}, function(result) {
    FailedCallBack(result, uniqueID);
});

此外,您可以传递DOM元素,而不是传递ID,因此您不必调用getElementById