我从PHP文件中获取信息并需要将信息附加到TD元素,但是,每当我尝试这样做时,我都无法将td作为参数发送回调处理AJAX调用的成功。
注意:td
元素实际上是div
,其作用类似于表格单元格。因此变量名td
。
以下是我的代码:
var bookingView = {
//Creates a set of div elements
createScheme: function() {
//--- A lot of loops and if statements excluded here ---
//The element that the data should be appended to
var td = $('<div></div>');
//Stores the returned promise
var promise = bookingController.grabInfo('bookinginfo');
//Send in the promise as an argument to display the information
bookingController.displayData(promise);
}
}
var bookingController = {
grabInfo: function(filename) {
//Return a promise
return $.ajax({
url : "ajax/" + filename + ".php",
type: "POST"
});
},
displayData: function(promise) {
//If the AJAX CALL (or promise) was successful, append the data
promise.success(function(data) { //Here is where I need to send in the td, but how?
td.append(data);
});
}
}
这是我尝试应用于自己的代码的解决方案:http://jsfiddle.net/jW68r/
但是我不能让它工作,因为无论我做什么,当我尝试将它作为参数发送到回调函数时,我需要附加信息的td元素总是未定义的。添加第二个名为element
的参数然后编写element.append(data)
根本不起作用。我怎样才能让它发挥作用?
答案 0 :(得分:1)
我发现将数据发送到回调本身并不起作用,因为回调是由它自己运行的。然而,使用它有效:
displayData: function(element, promise) {
promise.done(function(data) {
element.append(data);
});
}
并且这样称呼它:
bookingController.displayData(td, promise);