使用 javascript 获取 svg 文本值

the*_*nso 4 javascript svg

更新:

所以让我使用实际代码......我有这个javascript......

window.writeText = function(form) {
  var text;
  form.catnumber2.value = "PING";
  text = document.getElementByName('cat2Number').innerHtml;
  return alert(text);
};
Run Code Online (Sandbox Code Playgroud)

但是我没有按预期收到警报框。

当我通过 view/developer/view source(我在 chrome 中)查看源代码时,svg 没有出现,但是当我使用视图/开发人员/开发人员工具时......我可以看到以下 svg......

<svg height="594">
    <g ID="MasterG">
        <text name="cat2Number">"$1234"</text>
    </g>
</svg>
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?为什么我在“查看源代码”中看不到 svg 代码,但在“开发人员工具”中可以看到?这是我问题的原因吗?这就是我的警报框不会“警报”的原因吗?

The*_*heZ 5

经过几秒钟的谷歌搜索并找到这个/sf/answers/672194071/

我创建了这个使用的 JSFiddle 示例textContenthttp : //jsfiddle.net/hVyTJ/1/

原始的http://jsfiddle.net/hVyTJ/使用标准 DOM 遍历从根 SVG 元素获取文本元素。而更新直接通过 ID 定位文本元素。

至于查找属性值,您可以getAttributeNS按照此处所述使用:http : //www.carto.net/svg/manipulating_svg_with_dom_ecmascript/

编辑:

正如 Phrogz 所指出的,一个简单的getAttribute调用通常就足够了。阅读评论了解更多详情。

  • 请注意,SVG 属性没有命名空间,因此标准的 `getAttribute()` 是等效的(并且比 `mySVGEl.getAttributeNS(null,"d")` 更不烦人)。(有一些属性通常出现在 SVG 中 _do_ 具有命名空间的其他规范中,例如 XLink 的 `xlink:href`,但这些是例外。) (2认同)
  • 警报(document.getElementById('cat2Number').textContent); 做到了!!!感谢你和 Phrogz (2认同)