2010-04-13 64 views
4

對不起,如果這已發佈多次。但我已經嘗試了很多變化,但仍然無法正常工作。該HTML從jQuery AJAX調用罰款回來,我試圖刪除從響應頁眉和頁腳使用:如何解析jquery ajax xhtml響應?

// none of these work for me 
$("#content", data); 
$("#content", $(data)); 
$(data).find("#content").html() 

我斷點的響應,以驗證#內容通過檢查$(數據)存在並使用警報打印出數據的文本。我也嘗試使用「body」或「a」作爲選擇器,但它總是以未定義的方式返回。

我讀過這篇文章,你不能拉完整的XHTML文檔:jquery ajax parse response text。但我找不到答案的引用了,也許已經過時了?

有沒有人遇到過這個問題?

非常感謝, 史蒂夫

回答

4

這個工作對我來說:

$(data).filter("#content"); 
1

你從你的AJAX調用接收到的數據不是你的DOM樹的一部分,所以你不能使用JQuery函數調用來操縱它。您可以使用文本處理函數,您可以使用JSON,或者您也可以將您的響應附加到DOM。

2

你需要一個div來附加你的數據。像$("#response").replaceWith($(data).find('#content')); 這應該工作

0

您是否使用get方法?或者,您可以使用jQuery加載方法,您可以在其中提供要加載的頁面片段。

例如加載從簡潔(wellformed)html文檔內容的div你可以使用

$( 「#DIV到負載來」)。負載(「HTML-DOC對負載的。 html #content「,function(){ // do something something });

2

它在接收文檔中有<div>標籤時有效。

E.g. <body><div> your content </div></body>

看到一個非常簡單的proof of concept

0

你必須保證你的HTML DOM良好格式化。

嘗試最簡單的HTML

<html> 
<head> 
<title>title here</title> 
</head> 
<body> 
<div> 
    <div>hello</div> 
     <span id="s">span content</span> 
    </div> 
</body>