jQuery:外部html()

可能重复:
获取选定元素的外部HTML

想象我们有这样的事情:

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

如果我们以这种方式调用.html函数:

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

我们会得到:

 <p>Hello World</p> 

但是我需要得到:

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

那么,我需要做什么? 我想在#xxx中添加另一个包装,但这不是一个好主意。

创build一个临时元素,然后clone()append()

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

只要使用标准的DOMfunction:

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

outerHTML得到很好的支持 – 在Mozilla或caniuse上validation。

没有兄弟姐妹的解决办法:

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

通用解决scheme

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

小提琴: http : //jsfiddle.net/ezmilhouse/Mv76a/

如果你不想添加包装,你可以手动添加代码,因为你知道你的目标ID:

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