2009-10-14 60 views
1

我試圖在服務器響應中獲取特定div內的文本。我使用Firebug來查看響應是什麼,並且可以在返回的代碼中看到我的元素,但出於某種原因,我可以使用jQuery來捕獲它。這是我正在使用的:服務器響應中的jQuery .find()

var response = $('<div />').html(serverData); 
$('#uploadedFiles').html($(response).find("#created").text()); 
alert($(response).find("#created").text()); 

嘗試只返回什麼,不是文本或任何東西。我是否正確地做這件事?

注意:服務器響應不是來自jQuery ajax函數,而是來自jQuery SWFUpload插件,但是這件事情會發生嗎?

+0

alert(serverData)說什麼? – 2009-10-14 07:06:06

+0

我認爲這是同樣的問題,因爲我在這裏:http://stackoverflow.com/questions/1508095/jquery-query-a-get-returned-string – k0ni 2009-10-14 07:06:22

+0

var「response」包含jquery對象。你知道嗎? – 2009-10-14 07:07:43

回答

4

你什麼時候運行代碼?如果您在createdFile元素創建之前運行它,代碼將無法找到它。

我測試了這一點,它工作得很好,它提醒「ASDF」然後替換「測試」與div元素「ASDF」:

<script type="text/javascript"> 

$(function(){ 
    var response = $('<div />').html('<div id="created">asdf</div>'); 
    alert(response.find("#created").text()); 
    $('#uploadedFiles').html(response.find("#created").text()); 
}); 

</script> 

<div id="uploadedFiles">test</div> 

注意response是alread一個jQuery對象,所以$(response)是多餘的。

+0

我在使用serverData參數的uploadSuccess函數中使用了它。 你的例子只是找到一些位置ID,它會從serverData參數抓取它嗎? – 2009-10-14 13:25:53

+0

啊,我得到了它的工作。我做了一些更多的測試,並有一個完整的HTML文件搞砸了。我修復了我的腳本,只是返回

標記中的代碼,它完美地工作。 謝謝。 – 2009-10-14 13:34:28

+0

@Nic:是的,如果您將任何複雜的html代碼傳遞給$方法,它將通過將其分配給div元素的innerHTML來創建元素,因此您無法使用完整的html文檔。 – Guffa 2009-10-15 09:19:21