从 img 标签内更改 SVG 文本

tco*_*son 2 javascript jquery svg

我正在尝试使用 jquery 动态更改 img 标签内的 svg 项目的文本。我一直抓住错误的节点,因为所有的董事会都说要更改 textContent,但它永远不会改变文本。这是我的 HTML:

<head>
<script type="text/javascript">
            $(window).resize(function() {
                $('.ball').height($(window).height()+"px" );
                $('.ball').width($(window).width()/6+"px");
            });
            $(function() {
                $( ".ball" ).each(function( index ) {
                    var textNode = $(this);
                    textNode = textNode.find(".changeText");
                    textNode = textNode.children().first();
                    console.log(textNode);
                    textNode.textContent = "5";
                });
            });
            $(window).trigger('resize');
        </script>
    </head>
    <body>
        <div id="svgMain">
            <img class="ball" src="ball.svg"/>
            <img class="ball" src="ball.svg"/>
            <img class="ball" src="ball.svg"/>
            <img class="ball" src="ball.svg"/>
            <img class="ball" src="ball.svg"/>
            <img class="ball" src="ball.svg"/>
        </div>
    </body>
Run Code Online (Sandbox Code Playgroud)

然后这是我尝试动态加载的 img 标签中的 svg:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
    <g>
        <circle cx="50%" cy="50%" r="50%"/>
        <text class="changeText" text-anchor="middle" x="50%" y="60%" font-family="Verdana" font-size="35" fill="blue" ><tspan>150</tspan>  </text>
    </g>
</svg>
Run Code Online (Sandbox Code Playgroud)

Kai*_*ido 5

您无法<img>从 DOM访问标签内的任何内容。这不是文档的一部分,其中的任何内容也不能访问该文档。

对于您的问题,无论是使用<iframe>一个<object>或一个<embed>元素来访问它(plnkr),
无论是使用权和修改dataURIs(难,慢,..以及不这样做实际上)。