我必须在页面中多次使用jquery的$ .post函数。另外,我必须使用post方法返回的数据进行过滤。所以我把post功能放在这样:
$(document).ready(function(){
function loadData(url){
$.post(url,function(data){
var $data = data;
});
}
var raw = loadData(page01.php).filter("#someId").html();
$("#content").html(raw);
var raw = loadData(page02.php).filter("#anotherId").html();
$("#content2").html(raw);
});
但它不起作用。 任何帮助修改上述代码的工作将不胜感激。 此致
答案 0 :(得分:1)
你不能在你的函数之后调用另一个方法就像在jquery loadData('page02.php').filter
中你的函数需要返回jQuery对象才能工作,在你的情况下你的loadData函数不返回任何东西。但是你不能返回jQuery对象,因为它是一个匿名的调用。如果服务器返回的内容是html,那么要修改那个html你需要添加回调函数,因为这是在ajax调用之后应用某些东西的唯一方法。
您的代码应如下所示:
$(document).ready(function(){
function loadData(url, callback) {
$.post(url, function(data){
callback($(data)); // not sure if jquery detect if the content is
// html here, if yes then you can remove $( )
});
}
loadData('page01.php', function(html) {
var raw = html.filter("#someId").html();
$("#content").html(raw);
});
loadData('page02.php', function(html) {
var raw = html.filter("#anotherId").html();
$("#content2").html(raw);
});
});