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

And*_*san 11 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);
}
Run Code Online (Sandbox Code Playgroud)

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

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

self.selector.find("#my_id")[0].textContent = "New text";

但是,这感觉非常错误,我想我可能只是缺少使用Snap API的东西.

Ian*_*Ian 24

我认为应该这么简单

text.attr({ text: 'my new text'});
Run Code Online (Sandbox Code Playgroud)

所以

setTimeout( function() { text.attr({ text: 'my new text'}) }, 2000 );
Run Code Online (Sandbox Code Playgroud)

会测试它