2013-05-08 67 views
-2

使用jQuery,你怎麼能夠通過HTML代碼串進行搜索,例如:如何在字符串中使用jquery?

<script type="text/javascript"> 
    alert($('#t','<span id="t">d</span>').html()); 
</script> 

我希望得到d的警報,但我得到了一個未定義...

有誰知道去做這個?

其實我使用ajax請求來獲取頁面的html字符串。如果我然後嘗試將字符串粘貼到某個標籤中,那麼當前頁面會全部混亂。所以我想搜索給定的字符串。

+1

你有元素。所以,這應該工作'警報($(' d').html());'。但我不確定這是否好。 – 2013-05-08 13:49:18

+1

您的測試案例如此專業化以致荒謬。你想解決什麼真正的問題? – Blazemonger 2013-05-08 13:57:46

+0

這個工作,沒有意義這樣做,我不會發布它作爲一個答案'警報($(' d')。html());' – 2013-05-08 14:00:35

回答

3

上下文參數是上下文 jQuery將搜索。即它會查看該上下文中的子元素,而不是上下文本身。這工作:

alert($('#t','<span><span id="t">d</span></span>').html()); 

我不太清楚你在那裏試圖做什麼。您已擁有該元素,無需搜索它。這個例子可能永遠不會應用於任何現實世界的問題。

+0

我解釋了爲什麼我在帖子下做了這個。 – omega 2013-05-08 13:48:49

+2

是的,它將不得不被包裝在一些東西或OP將不得不澄清。 +1真的包裝,在我看來是壞的問題。 – 2013-05-08 14:02:03

0

如果你使用(或可以使用,因爲似乎是這種情況).load()的內容提取到例如元素#target

$('#target').load('myfile.html #t'); 

這將只獲取元素#t內myfile.html 。

如果由於某種原因,你不能使用​​,作爲最後的手段,你可以從響應創建jQuery對象和使用它來搜索內容:

$.ajax('myfile.html').done(function(data) { 
    $(data).find('#t').appendTo('#target'); 
}); 

使用.filter(),而不是.find()如果#t是返回數據中的頂級元素。