2010-02-23 3 views
9

Désolé, si le titre est trop obscur, D.Comment obtenir le innerHtml, y compris le tag, en utilisant jQuery?

En fait, le problème est, disons que je suis ce code.

<span id="spanIDxx" style="blah-blah"> 
    <tag1>code here </tag2> sample text 
    <tag2>code here </tag2> html aass hhddll 
    sample text 
</span> 

Maintenant, si je vais utiliser le code.

jQuery("#spanIDxx").html(); 

il retournera juste le innerHTML hors <span id="spanIDxx" style="blah-blah">
, mais je veux quelque chose qui peut renvoyer le innerHTML, y compris l'élément spécifié.

Répondre

11

Cela va créer une nouvelle div et ajouter un clone de votre élément à ce div. Le nouveau div n'est jamais inséré dans le DOM, cela n'affecte donc pas votre page.

var theResult = $('<div />').append($("#spanIDxx").clone()).html(); 

alert(theResult); 

Si vous devez utiliser fréquemment, et ne veulent pas déranger l'ajout encore un autre plug-in, juste en faire une fonction:

function htmlInclusive(elem) { return $('<div />').append($(elem).clone()).html(); } 

alert(htmlInclusive("#spanIDxx")); 

Ou étendre jQuery vous:

$.fn.htmlInclusive = function() { return $('<div />').append($(this).clone()).html(); } 

alert($("#spanIDxx").htmlInclusive()); 
+0

Certains gars a écrit un plugin appelé 'outerHTML' faire ceci: http: //brandonaaron.net/blog/2007/06/17/jquery-snippets-outerhtml/. Quelqu'un d'autre a étendu le plugin pour permettre le remplacement: http://yelotofu.com/2008/08/jquery-outerhtml/ –

+0

super +1, accepté la solution :) –

1

Vous pouvez copier le nœud à un nouveau noeud vide, demander de nouvelles .parent(), puis son .html()

1

Clone peut vous être utile. Je ne crois pas que vous ayez vraiment besoin de faire quoi que ce soit avec le/les clone/s.

Questions connexes