2017-02-22 54 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/ –