2012-02-05 43 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