2012-02-05 47 views
1

我做一些剧本,那对的fancybox和负载它的模式窗口从其他文件的一些内容罢了。我有一些quetions:使用Ajax像负载

我想要加载通过AJAX内容到我的容器(#对话框的比喻)。但不是完整的页面 - 只有一个DIV与ID(#GET-猫)。我不知道,如何从ajax页面获取id的内容。氏是剧本初稿:

function FillCats(catid) { 
    $.ajax({ 
     url: "catalogue.php?cat="+catid+"&size=1", 
      cache: false, 
      success: function(html){ 
        var getcat = $('#get-cats').html(html); // wrong 
      $("#dialog-analogy").html(getcat); 
      } 
    }); 
} 
+3

不住使用,这是不好的,MKEY?使用委托! – 2012-02-05 13:40:53

+4

请一次询问**一个**问题。把第二个问题从这个问题中分离出来。 – 2012-02-05 13:43:45

回答

3

你会很高兴知道,jQuery的load函数正是你想要的功能。您只需在URL的末尾添加一个选择器即可。

function FillCats(catid) { 
    $("#dialog-analogy").load("catalogue.php?cat="+catid+"&size=1 #get-cats"); 
} 

load文档的Loading Page Fragments section

Live example using load


如果由于某种原因,你不能使用load,你可以很容易地建立的您通过$()收到什么样的结构,然后提取元素(或多个)效仿它,你想:

function FillCats(catid) { 
    $.ajax({ 
     url: "catalogue.php?cat="+catid+"&size=1", 
     cache: false, 
     success: function(data) { 
      $("#dialog-analogy").html($(data).find("#get-cats")); 
     } 
    }); 
} 

Live example emulating load using ajax

+0

是的,我知道负载。但加载缓存的结果... – skywind 2012-02-05 13:54:22

+0

@Vladimir:你的JavaScript代码不应该控制缓存能力。这是服务器的工作。如果内容需要不可缓存,请在内容服务器端设置正确的缓存标头。但是我添加了一个使用'ajax'的例子。 – 2012-02-05 14:06:13