2013-06-13 84 views
0

我试图使用jQuery获取元素的整个HTML。当然,.html()只抓取内部HTML,但我想检索包装HTML。获取jQuery中元素的HTML

想象一下下面的HTML:

<div id="wrapper"> 
    <div id="container_a"> 
     <p>Container A</p> 
    </div> 
    <div id="container_b"> 
     <p>Container B</p> 
    </div> 
</div> 

现在,如果我会做$("#container_a").html()我得到<p>Container A</p>清楚。但是,我想得到以下内容:

<div id="container_a"> 
    <p>Container A</p> 
</div> 

我该如何实现这一目标?

+0

呀,看起来像它。 Google让我失望:| – RemiDG

回答

3

可以使用prop做到这一点:

$("#container_a").prop('outerHTML'); 

临时

+2

很高兴看到有一种jQuery-ish方式(尽管看起来好像有点过度,tbh)...现在我将不得不对源代码进行筛选, prop()'实际上是代理... – vzwick

+0

@vzwick到目前为止的任何更新? – RemiDG

+0

@vzwick它所做的只是“修复”一些东西(比如试图访问'class'属性,它会在内部将其更改为'className'),但最终只是返回'element [name]' – Ian

0

就可以使用。 outerHTML

$("#container_a")[0].outerHTML 
+0

'$(“#container_a”)' - '#'有所不同。 – vzwick

+0

@vzwick谢谢,我更新了它 – PSR

1

使用outerHTML

$("#container_a")[0].outerHTML 

使用普通的JavaScript

document.getElementById("container_a").outerHTML; 
1

首先使用clone然后得到html

$('div').append($('#container_a').clone()).html(); 
+1

这个解决方案,因为我知道是唯一一个在较老的jQuery /浏览器版本上工作的人 –

1

这应该工作

<script> 
    var a=document.getElementById("container_a").outerHTML; 
    alert(a); 
</script> 

相反警报,我们可以使用变量以任何其他方式的......