2017-02-22 58 views
0

我試圖克隆這樣的HTML元素:jQuery的克隆元素,避免採取父節點

var $div = $('#world-map-gdp').clone(); 
    $("#world-map-gdp2").html($div); 
    $("#world-map-gdp2").removeAttr('style').css("height", "400px").css("display","block"); 

原始的HTML元素看起來是這樣的:

<div id="world-map-gdp" style="height:400px !important; position: absolute !important; left: -999em !important;"> 

</div> 

我想克隆僅機身這個元素,而不是div本身,所以只是在之間的身體:

<div> </div> 

標籤...我該怎麼做?

+0

它裏面有什麼,只是克隆 – Pabs123

+0

@ Pabs123內容是由jQuery後來動態填充的,我可以看到它裏面有SVG標籤,我怎麼能說從克隆裏面的svg標籤DIV? – User987

+0

你有沒有嘗試過類似於document.querySelector('#world-map-gdp')。innerHTML?將其設置爲變量,然後在第二個元素上使用innerHTML來設置克隆的內容。 –

回答

1
var body = document.querySelector('#world-map-gdp').innerHTML; 

這將得到公正的innerHTML內容所選元素,然後用身體變量來填充innerHTML的第二個元素:

document.querySelector('#world-map-gdp2').innerHTML = body; 

或者,如果你想使用jQuery:

var $body = $('#world-map-gdp').html(); 
$('#world-map-gdp2').html($body); 
+0

如何var $ div = $('#world-map-gdp')。children()。clone(true,true);? – User987

+0

如果確實如此,我認爲jQuery.html()也會以相同的方式工作,但代碼會更清晰:http://api.jquery.com/html/ –