2014-10-11 58 views
1

在放入容器之前是否有可能從AJAX(加載)響應中刪除特定的HTML元素?在這種情況下,我想從響應中刪除「#containerTop」,包括內容。從JQuery AJAX加載()中刪除HTML元素()響應

響應(HTML):

<html> 
    <head></head> 
    <body> 
    <div id="containerMain"> 
     <div>...</div> 
     <div id="containerTop">Content-to-remove-including-container-div...</div> 
    </div> 
    </body> 
</html> 

我試過這個,沒有成功。

<div id="middle"></div> 
<script> 
$("#middle").load("http://<URL>", 
function(response, status, xhr){ 
$response.remove('#containerTop'); 
      }); 
</script> 

任何想法?

回答

2

​​直接插入內容爲您服務。它沒有給你一個機會來修改它插入之前。因此,你有兩個選擇:

  1. 它插入後,您可以修改的內容,但在此之前它在​​完成處理程序是畫。
  2. 您可以切換到.get()以獲取內容作爲數據,然後將其放入一個jQuery對象,然後使用jQuery方法修改它,然後將修改後的內容自己插入到您的頁面中。

這裏的第二選項的示例:

$.get("http://<URL>", function(data) { 
    var temp = $(data); 
    temp.find('#containerTop').remove(); 
    $('#middle').empty().append(temp); 
}); 
+0

謝謝,它適用於$( '#中間')HTML(數據).find( '#containerTop')刪除()。但是這會在放置後刪除元素。我可以刪除元素數據放置嗎? – marioa 2014-10-11 22:07:12

+0

@MarioAmmann - 我爲我的答案添加了一個例子。 – jfriend00 2014-10-11 22:14:22

+0

謝謝,這個作品完美。 – marioa 2014-10-14 21:52:58

-3

response.find(element).remove()

這工作我

+0

謝謝。但在使用後出現錯誤:$ response is not defined – marioa 2014-10-11 21:35:57

+0

'function(html){ var $ ajaxFetched = jQuery(html).find(「#ajax-fetchable」);'也可以工作 – 2014-10-11 21:41:33