385 votes

jQuery: à l'extérieur de l'html()

Double Possible:
Obtenez de l'élément sélectionné extérieur HTML

imaginez ce que nous avons quelque chose comme ceci:

<div id="xxx"><p>Hello World</p></div>

si nous appeler .html la fonction de cette façon:

$("#xxx").html();

nous aurons:

<p>Hello World</p>

Mais j'ai besoin d'obtenir:

<div id="xxx"><p>Hello World</p></div>

Donc, ce que je dois faire? Je pense que pour ajouter un wrapper autour de #xxx, mais ce n'est pas une bonne idée.

1327voto

Andy Points 14009

Ne sais pas à propos de la compatibilité du navigateur, mais cela a fonctionné sur chrome

$('#xxx')[0].outerHTML

217voto

Box9 Points 41987

Créer un temporaire de l'élément, puis clone() et append():

$('<div>').append($('#xxx').clone()).html();

83voto

ezmilhouse Points 1852

Pas de frères et sœurs de la solution:

var x = $('#xxx').parent().html();
alert(x);

Solution universelle:

// no cloning necessary    
var x = $('#xxx').wrapAll('<div></div>').parent().html(); 
alert(x);

Violon ici: http://jsfiddle.net/ezmilhouse/Mv76a/

-10voto

Steve Kelly Points 273

Si vous ne voulez pas d'ajouter une surcouche, vous pouvez simplement ajouter le code manuellement, puisque vous connaissez l'ID cible:

var myID = "xxx";

var newCode = "<div id='"+myID+"'>"+$("#"+myID).html()+"</div>";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X