有没有办法检查是否创建了SVG?

时间:2015-10-16 07:00:07

标签: javascript jquery svg

我面临一个问题,我必须检查是否所有svgs元素(一页上大约15个)都是由图表插件创建的。我不想破解该代码,因为当插件更新时它可能不起作用。我想在jQuery中执行此操作(或者在必要时使用简单的javascript)

所以我基本上想做点什么

$("svg").bind("load", function() {
    alert('svg has loaded');
});

但上面似乎没有用。如果我理解正确SVG不是实际dom的一部分,那么那将是问题。有没有办法检查是否已创建SVG?

dom看起来像这样:

<div id="visualizer-100">
<div id="visualizer-101">
<div id="visualizer-102">

当我看到萤火虫或类似物时,我会看到类似的东西:

<div id="visualizer-100">
    <div>
        <div> 
            <svg with all its its attributes...>
        </div>
    </div>
</div>

我想检查SVG是否是&#34;那里&#34;是我想这样做:

var container = document.getElementById('visualizer-100');
var svgText = container.querySelector('svg').outerHTML;

如果没有创建SVG,那么我为svgText获取null。

1 个答案:

答案 0 :(得分:1)

尝试收听这些SVG的父元素 然后听取目标负载:

parentElement.bind('DOMNodeInserted',function(event){ 
     alert(event.target + 'inserted');
});

fJSiddle:http://jsfiddle.net/0532h5ey/

对于加载的元素,您应该定位内部SVG节点。