如何从javascript中的SVG字符串获取信息
how to get information from a svg string in javascript?
我有一个svg绘图的字符串。例如,我的字符串var有这样的内容:
<svg width="612" height="394" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<rect id="svg_1" height="152" width="265" y="44" x="91" stroke-width="5" stroke="#000000" fill="#FF0000"/>
</g>
<g>
<title>Layer 2</title>
<rect id="svg_2" height="125" width="151" y="157" x="399" stroke-width="5" stroke="#000000" fill="#FF0000"/>
</g>
</svg>
是否有一种简单的方法来获取信息?例如,获得矩形高度的最佳方法是什么?如何选择仅从第2层的矩形的高度?谢谢你的回答
使用XML dom解析器。
正如其他答案所述,jQuery是操作和遍历html/xml的一个非常好的解决方案:
$(svgString).find('g:eq(1) rect').attr('height');
如果你不想使用第三方库,你可以在纯javascript中做到这一点,但你的svg字符串应该追加到dom:
var svgString = a='<svg width="612" height="394" xmlns="http://www.w3.org/2000/svg"><g> <title>Layer 1</title> <rect id="svg_1" height="152" width="265" y="44" x="91" stroke-width="5" stroke="#000000" fill="#FF0000"/> </g> <g> <title>Layer 2</title> <rect id="svg_2" height="125" width="151" y="157" x="399" stroke-width="5" stroke="#000000" fill="#FF0000"/></g></svg>',
tempElement = document.createElement('div');
tempElement.innerHTML = svgString;
var height = tempElement.querySelector('g:nth-child(1) rect').getAttribute('height');
下面是一个工作演示:http://jsfiddle.net/gion_13/5K5x2/
试一下?
在代码中包含jQuery,并使用:
$("svg").find("rect").attr("height");
使用字符串
:
var str = "<svg> ... </svg>"
$(str).find("rect").attr("height");
相关文章:
- 通过字符串获取JSON对象
- 将敲除绑定应用于模板,并将结果作为字符串获取
- 使用字符串获取本地对象的属性
- 如何使用 jQuery 在标签的 for 属性中使用子字符串获取标签元素的值
- 使用 Javascript 将 Java 渲染为字符串获取最终 HTML
- 如何使用正则表达式从此字符串获取电子邮件
- 维基媒体API从JSON字符串获取相关数据
- 如何使用jQuery将HTML数据值作为字符串获取
- 带有换行符的JSP+HTML-将其作为字符串获取,并删除"新线”;
- 如何从字符串获取url-jQuery或Javascript
- QML-将JS函数的代码作为字符串获取
- cookie字符串获取并设置jquery控件的属性
- 通过字符串获取HTML元素
- 从绝对url字符串获取锚值
- 在myObj.one.two.three.field中,当字段有2个或更多嵌套级别时,通过路径字符串获取对象字段
- 从带有moment的非本地ISO8601字符串获取时间(小时,分钟)
- 使用javascript使用parseFloat和parseInt无法正常工作的字符串获取价格
- 如何从json字符串获取键值
- 使用javascript从给定字符串获取电子邮件id
- 从Json字符串获取数据到javascript (jQuery)