2013-02-26 95 views
0

我在一個ajax請求中返回JSON,其中包含html作爲其值之一。使用jQuery在JSON html內容中查找id元素

html: 
"<div id="foo"> 
    <p>FOO</p> 
</div> 

<div id="bar"> 
    <p>BAR</p> 
</div>" 

我想補充#foo一個元素,#bar到另一個。我曾嘗試以下:

$('#add-foo-html-here').html($(response.html).find('#foo'));

但未能找到#foo。做這個的最好方式是什麼?我應該將html內容添加到一個臨時元素,然後找到id?

+0

我猜你插入的元素實際上有ID'#this'(看起來很奇怪)?如果HTML是有效的(上面有一些引用問題),它應該工作!另外,如果他們沒有父項,則無法找到()它們,您需要先將它們追加到空父項。 – adeneo 2013-02-26 10:49:36

+0

對不起,這只是一個例子。我會更新它的澄清。 – xylar 2013-02-26 10:51:24

回答

2

使用.filter(),而不是.find()

$('#add-foo-html-here').html($(response.html).filter('#foo')); 

.find()只找到孩子的元素。但是這裏#foo不是小孩。

+0

謝謝,這是我正在尋找。 – xylar 2013-02-26 10:57:28

1

您需要家長才能使用find() ???

var div = $('<div />'); 
    div.html(response.html); 

$('#elementID').html(div.find('#foo')); 
+0

智能解決方案。 – 2013-02-26 10:56:50

+0

感謝您對find()的澄清。這是我在創建臨時元素時要做的事情。 – xylar 2013-02-26 11:01:39