如何从一个指定子ELEMENT获取innerHTML

时间:2015-05-29 19:29:20

标签: javascript html css dom

所有

我想做的是:

<div id="container">
    <div class="unwanted"></div>
    <div class="unwanted"></div>
    <svg><rect></rect></svg>
    <div class="unwanted"></div>
<div>

如何为该svg获取#container的innerHTML,所以我得到的是:

"<svg><rect></rect></svg>"

3 个答案:

答案 0 :(得分:1)

你想要的是svg Element的outerHTML,但实际上并不是这样。 在这里

outerHTML of an SVG element

是如何获取带有内容的svg的想法。

答案 1 :(得分:1)

在这种情况下,这将为您提供所需的内容:

document.getElementById('container').getElementsByTagName('svg')[0].innerHTML;

答案 2 :(得分:0)

jquery的

var container = $("#container").html().find('svg');
// or
 $("#container svg").html();

//return <rect></rect> you can use '<svg>'+container+'</svg>'

的javascript

var container = document.getElementById('container');
var svg = container.getElementsByTagName('svg')[0].innerHTML;

//return <rect></rect> you can use '<svg>'+container+'</svg>'

或在Why .html() doesn't work with SVG selectors using jquery ?

上查看@ Duopixel的答案
var svg = document.getElementById('svg_root'); // or whatever you call it
var serializer = new XMLSerializer();
var str = serializer.serializeToString(svg);