2010-09-18 23 views
3

你知道是否可以在包含html的變量上運行jQuery,而不僅僅是在文檔本身上運行。在變量上運行jQuery而不在文件上

實施例:

bg.inspectorGetRawHtml = function(){ 
    var c = jQuery("#bg-admin-inspect-wrapper").html(); 
    jQuery(".bg-admin-inspect-state", c).remove(); 
    console.debug(c); 
} 

所以bascially,讀取頁面段HTML到一個變量,然後該字符串執行的jQuery操縱。

如果我console.debug實際的jQuery刪除,它似乎是匹配,但該var不被操縱。我知道jQuery的依賴於DOM,也許這就是爲什麼它不工作,但如果有人對此有任何見解.... 編輯 lonesomeday的建議後,這裏是我結束了代碼:

bg.inspectorGetRawHtml = function(){ 
    var c = jQuery("#bg-admin-inspect-wrapper").clone(); 
    jQuery(".bg-admin-inspect-state", c).remove(); //The ,c specifies what element to work on. 
    console.debug(c.html()); 
} 

回答

4

你需要的功能是$()分離:

bg.inspectorGetRawHtml = function(){ 
    var c = jQuery("#bg-admin-inspect-wrapper").detach(); 
    console.debug(c); 
} 

這將從DOM中刪除選定的元素,讓你在其上執行jQuery的操作。


編輯您也可以從字符串創建HTML的一部分,並把它變成一個jQuery選擇和使用它。例如

$(document).ready(function() { 
    var newText = '<div><p>Some text here</p><img src="image.png" /></div', 
     $newDiv = $(newText); 

    $newDiv.addClass('someClass'); 

    $('body').html($newDiv); 
}); 

這將創建內容的段落和圖像的新的div,增加了類「SomeClass的」到div和替換頁面與新的div內容。

+0

哦,是的,杜。謝謝寂寞。我實際上使用了clone(),因爲我想將原始數據留在頁面上。 – 2010-09-18 10:30:54

相關問題