2011-04-01 42 views
2

例如,如果用戶在Default上。點擊導航進入Page2我想加載<div>的ID爲container,並抓住第二個<div>的ID爲includeScripts,但顯然不加載這個,只是捕獲其中包含的文本。默認的從不同頁面抓取對象但不使用加載方法

例子:

<div id="mainContentContainer"> 
    <!-- Main content container --> 
</div> 

第2頁的例子:

<div id="container"> 
    Page 2 

</div> 

<div id="includeScripts"> 
    Some Text here... 
</div> 

當前的腳本是這樣的:

$navigation = $("#primaryNavigation").delegate('ul li a', 'click', function() { 

// Load the container information into the MainContainer div located on Default 
$('#mainContentContainer').load($(this).attr('href') + ' #container'); 

// Load the 'includeScripts' div and grab the text 

      $.ajax({ 
      url: $(this).attr('href'), 
      context: document.body, 
      success: function() { 
       console.log('success'); 
      } 

    }); 

我想,也許使用ajax方法jQuery提供會工作但顯然不是。

如果我的問題不清楚,請告訴我。

回答

0

這是我落得這樣做......非常相似,約西亞的回答有小調整

$.ajax({ 
     url: $(this).attr('href'), 
     dataType: 'html', 
     context: '#mainContentContainer', 
     success: function (html) { 
       console.log($(html).filter('#includeScripts').text()); 
       console.log($(html).filter('#includeStylesheets').text()); 
     }}); 
2

爲什麼你不在你的「默認」頁面上創建第二個div,你會從「includeScripts」div中加載文本,並將div的顯示設置爲none。

從那裏你會有你的默認頁面中可用的腳本文本。

+0

這將肯定工作。不過,我正在尋找更優雅的解決方案。 :) – 2011-04-01 21:41:00

1

如果我正確理解你的問題應該是這樣的:

$.ajax({ 
    url: $(this).attr('href'), 
    dataType: 'html', 
    context: '#mainContentContainer', 
    success: function (html) { 
     var text = $(html) 
      .find('#container') 
      .appendTo(this).end() 
      .find('#includeScripts') 
      .text(); 

     console.log(text); 
    } 
}); 
相關問題