2013-06-13 85 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> 

相反警報,我們可以使用變量以任何其他方式的......