【问题标题】:get svg element from an xml response从 xml 响应中获取 svg 元素
【发布时间】:2016-05-12 01:31:50
【问题描述】:

当我尝试访问响应 xml 时出现错误。我想首先访问 svg,然后获取 svg 视图框的高度和宽度或其他方式。如何从响应 xml 访问 svg 以获取高度和宽度?

我想像这样使用 javascript(可能是 jquery)访问高度和宽度:

this._imageW = jQuery(".SVGImage").width(); this._imageH = jQuery(".SVGImage").height();

我正在使用一种方法来下载文件,然后在 xml 中给我响应。了解如何使用 xml 响应思想访问元素。

这是上面的回复。 我在控制台中尝试过,但不起作用

如何访问 svg 元素的高度和宽度?

【问题讨论】:

  • btw 在控制台中您看到的第一张图像 'c' 这是一个变量,表示: var c = atob(btoa(String.fromCharCode.apply(null, new Uint8Array(event.getParameter( 'response'))))) 此变量包含 xml 格式代码。我现在想得到这个变量的高度和宽度。提前致谢。
  • 正确的函数调用是getElementsByTagName()。注意's'。不过,我不确定这是否是您唯一的问题,因为您的问题中没有足够的信息。如果仍然无法正常工作,请提供您的代码的工作示例。
  • c 看起来像一个字符串
  • 是的 c 是一个字符串。我如何访问字符串中的 svg? :) @KevinB
  • 如果是字符串,不能把它当成dom节点集合,它没有getElementsByX方法。

标签: javascript jquery html xml svg


【解决方案1】:

您将要使用 jQuery 函数 $.parseHTML() 将字符串 c 解析为 HTML。

然后,您将拥有一个变量,您可以通过 getElementByX() 调用访问该变量,并且可以找到您想要的 SVG 元素。

var c = '<svg width="200px" height="100px" viewbox="0 0 100 50"> <path d="M50,35 a20,20 0 1,0 0,-20 a20,20 0 1,0 0,20z" fill="white" stroke="black"></path> </svg>'

var html = $.parseHTML(c);

$('#width').html($(html).attr('width'));

$('#height').html($(html).attr('height'));

$('#output').html($(html));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Height: <span id="height"></span>
</p>
<p>Width: <span id="width"></span>
</p>

<div id="output"></div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2018-08-06
    • 2017-02-16
    • 2013-07-01
    • 1970-01-01
    相关资源
    最近更新 更多