2013-04-30 54 views
0

以下是代碼IAM工作jQuery中加載層

$.ajax({ 
    type: 'GET', 
    url: '<?php echo site_url(); ?>register', 
    data: "",  
    success: function (data) { 
     $("#ldcontent").html(data); 
    } 
}); 

我想打電話給在上面的代碼層爲#ldfgp

$('#ldcontent').load('<?php echo site_url(); ?>register #ldfgp'); 

我的問題下面是它可以調用一個圖層(#ldfgp)從一個加載頁面到我的主頁通過$.ajax()

我不能在jquery中使用加載函數,因爲它排除了加載頁面中嵌入的JavaScript。

您的建議和幫助非常感謝。

+0

哇,[* layer *](http://en.wikipedia.org/wiki/Layer_element)? Netscape打來電話,他們會很高興見到你 – Phil 2013-04-30 06:55:24

+0

你的意思是你只想從註冊頁面抓取ID #ldfgp的部分? – Sacha 2013-04-30 06:56:09

+0

@philPlease請清除你正在嘗試回答我的問題?你可以解釋一下嗎? – t0m 2013-04-30 06:58:28

回答

1

您可以將整個文檔加載一些HTML片段,然後從它

$.ajax({ 
    type: 'GET', 
    url: '<?php echo site_url(); ?>register', 
    data: "",  
    success: function (data) { 
     var $fragment = $('<div/>').html(data); 
     $("#ldcontent").html($fragment.find('#ldfgp').html()); 
    } 
}); 
+0

@Vadmin它在IE和Zilla中工作正常。根據你在其他瀏覽器中查找任何問題? – t0m 2013-04-30 10:51:50

+0

@ t0m我已經在Mac上的Safari和Chrome上測試了它,因此它不應該是這個代碼的問題。 – Vadim 2013-04-30 11:21:02

+0

感謝Vadim再次爲您提供的建議 – t0m 2013-04-30 18:43:50

0

你可以試試這個 -

$.ajax({ 
    type: 'GET', 
    url: '<?php echo site_url(); ?>register', 
    data: "",  
    success: function (data) { 
     $("#ldcontent").html(data); 
     $("#ldcontent *").css('display','none'); 
     $("#ldcontent #ldfgp").css('display','block'); 
     $("#ldcontent #ldfgp *").css('display','block'); 
    } 
}); 
+0

謝謝..但失敗... :)沒有顯示 – t0m 2013-04-30 07:24:28

+0

只需添加此行 - $(「#ldcontent #ldfgp *」)。css('display','block'); – HADI 2013-04-30 08:02:23

1

由於阿賈克斯$加載整個HTML文檔包含HTML>體,$(數據)創建一個有點奇怪jQuery對象。因此您可以使用$(data).find或$(data).filter來查找您的元素。你可以嘗試一些像:

$.ajax({ 
type: 'GET', 
url: '<?php echo site_url(); ?>register', 
data: "",  
success: function (data) { 
    var $data=$(data); 
    var $layer=$() 
      .add($data.find('#ldfgp')) 
      .add($data.filter('#ldfgp')); 



     $('#ldcontent').html($layer); 

    } 
}); 
0

獲取相關內容,所以,讓我們假設我們有register.html文件是這樣的:

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 
     <div id="ldfgp"> 
      <h1>Hello</h1> 
     </div> 
     <div> 
      <h1>Hello 2</h1> 
     </div> 
     <div> 
      <h1>Hello 3</h1> 
     </div> 
    </body> 
</html> 

使用$。阿賈克斯(),您可以用ID #ldfgp這樣搶元素:

$(document).ready(function() { 
     $.ajax({ 
       type: 'GET', 
       url: './register.html', 
       data: "", 
       success: function (data) { 
         var external = $.parseHTML(data); 
         $.each(external, function(i, e) { 
          if ($(e).attr("id") == "ldfgp") { 
           $("#ldcontent").html(e); 
           return false; 
          } 
         }); 
       } 
     }); 
    }); 

但個人而言,我更喜歡Vadim的解決方案,因爲它更乾淨並且不涉及顯式的.each()迭代。

+0

謝謝美聯儲爲您提供的忠告! – t0m 2013-04-30 10:49:25