2010-09-18 5 views
3

Savez-vous s'il est possible d'exécuter jQuery sur une variable contenant du code HTML et pas seulement sur le document lui-même.Exécutez jQuery sur une variable et non sur un document

Exemple:

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

Alors bascially, la lecture d'un segment des pages html dans une variable puis effectuer la manipulation jQuery sur cette chaîne.

Si je console.debug la suppression jQuery réelle, il semble que la correspondance, mais la var n'est pas manipulée. Je sais que jQuery repose sur les DOM, et peut-être pourquoi cela ne fonctionne pas, mais si quelqu'un a une idée sur ce .... Modifier Après la suggestion de lonesomeday, voici le code que je fini avec:

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()); 
} 

Répondre

4

la fonction dont vous avez besoin est $() détachez:.

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

Cela supprime l'élément sélectionné dans le DOM et vous permettent d'effectuer des opérations jQuery sur elle.


Modifier Vous pouvez également créer un morceau de code HTML à partir d'une chaîne et d'en faire une sélection jQuery et travailler avec elle. Par exemple

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

    $newDiv.addClass('someClass'); 

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

Cela crée une nouvelle div avec un paragraphe de contenu et une image, ajoute la classe « someClass » à la div et remplace le contenu de la page avec la nouvelle div.

+0

oh ouais, duh. Merci un jour. En fait, j'ai utilisé clone() car je voulais laisser les données d'origine sur la page. –

Questions connexes