2012-12-09 69 views
1

我目前使用$ .get()從另一個文件中獲取HTML標記。如何將結果添加到當前DOM的匹配元素的當前jQuery集合中?將HTML字符串轉換爲jQuery元素集

我以爲add()會做的,但事實並非如此。舉例來說,這不起作用:

$.get('file.html', function(data) { 
    $('body').add(data) 
}); 

但理想情況下,如果file.html了,說,「」,我希望能夠使用#result就像是在當前元素的集合,用$('#result')。html(..)。

我可以做的一件事就是使用$ .load('file.html #result')...但我必須多次這樣做,因爲我將使用多個元素。然後

我的想法也許是使用

sub$ = jQuery.sub(); 

,並從$不用彷徨添加HTML的返回的字符串給它,但不知道這是否是可能的。

+1

你想'的append()'的數據body元素或更新基於元素響應? – undefined

+0

更新我猜。例如,我得到的一個元素是一個按鈕。我想在當前DOM中的某個div內添加該按鈕。 – sqram

回答

6

您可以將整個html響應轉換爲jQuery對象,而無需將其插入到DOM中。這允許您操作或查找特定的元素或值,並對響應的不同部分執行不同的操作。

實施例:

$.get('file.html', function(data) { 
    var $response=$(data); 
    var myButton=$response.find('button'); 

    var someDiv= $response.find('#someDiv').css('color','red') 
    $('#someForm').append(myButton) 

    $('body').append(someDiv) 
}); 

也可以檢查對於特定元件的存在,或所述響應中的某些值,並相應地處理響應。

$.get('file.html', function(data) { 
    var $response=$(data); 

    if($response.find('#someDiv').length){ 
     doThis(); 
    }else{ 
     doThat(); 
    } 

}) 
+1

當創建一個jQuery對象作爲約定時,有些人使用'$'來知道它是一個jQuery對象而不是一個值,數組或對象字面值 – charlietfl

0

單純看jQuery文檔http://api.jquery.com/html/

你必須使用HTML方式:

$.get('file.html', function(data) { 
    $('body').html(data); 
}); 
+0

這不是我想要的。這將取代身體的全部內容。 – sqram

+0

所以很容易,而不是身體使用另一個選擇器,如ID爲#someId的div! – SaidbakR