javascript - 如何使用 Snap.svg 更新 SVG 文本元素?

标签 javascript jquery svg snap.svg

我正在使用 Snap.svg 加载 SVG 图像并向其添加文本元素。但是,我需要能够在页面加载时更新文本元素。

现在,我正在做这样的事情:

var svg = Snap("#selector");
var text;
Snap.load(path_to_file, function(f) {
    svg.append(f);
    var g = svg.select("g");
    text = g.text(x_pos, y_pos, label);
}

假设我想稍后更新文本,我该怎么做?我保证在调用 load 后创建 text 对象。

我设法修改文本的唯一方法是为元素设置一个 id,然后像这样使用 jQuery 进行修改:

self.selector.find("#my_id")[0].textContent = "新文本";

但是,这感觉真的不对,我想我可能只是遗漏了一些与 Snap API 相关的东西。

最佳答案

我觉得应该就这么简单

text.attr({ text: 'my new text'});

所以

setTimeout( function() { text.attr({ text: 'my new text'}) }, 2000 );

会测试它

关于javascript - 如何使用 Snap.svg 更新 SVG 文本元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22584129/

相关文章:

javascript - 仅当 AJAX 请求需要一定时间时才执行代码?

javascript - Angularjs Datatable 服务器端分页

javascript - 如何将 javascript 字典转换为编码的 url 字符串?

Android jellybean 与 Phonegap 点击不工作

css - 具有内联 SVG 的响应式剪辑路径

javascript - 更新包布局上的困惑数据

JavaScript 添加天数

javascript - 在 Html 应用程序中,使用 javascript,如何获取图像在屏幕上的位置并将其放入文本文档中?

javascript - 获取 jQuery 对话框中的底层元素

Jquery 弹跳图像悬停