如何更改snap.svg中的文本

时间:2019-10-25 13:41:56

标签: jquery snap.svg

我在网站上用线条和文字绘制图形。我使用的是snap.svg和JQuery。

s是绘图表面,一个id为“ g54”的组。

for (;;) {
    scanf("%20s", stringBuffer);
    scanf("%d ", &num1);
    scanf("%d ", &num2);

    if (strcmp(stringBuffer, "add") == 0) {
        printf("%d + %d = %d", num1, num2, (num1 + num2));
    } 
    else if (strcmp(stringBuffer, "sub") == 0) {
        printf("%d - %d = %d", num1, num2, (num1 - num2));

    }
    else if (strcmp(stringBuffer, "mul") == 0) {
        printf("%d * %d = %d", num1, num2, (num1 * num2));

    }
    else if (strcmp(stringBuffer, "div") == 0) {
        printf("%d / %d = %d", num1, num2, (num1 / num2));

    }
    else if (strcmp(stringBuffer, "help") == 0) {
        printf("input: operation n1 n2\n");
        printf("output: operation(n1, n2)\n");
        printf("implemented operations: 'add', 'sub', 'mul', and 'div'\n");
    }
    else if (strcmp(stringBuffer, "quit") == 0) {
        return 0;
    } else {
        printf("Please try again.\n");
    }
}

我想更改文本,我尝试了几种方法。 我可以更改文本的位置,颜色,但不能更改文本本身。

g.add(s.text(120, 120, "outside").attr({    "font-size": "15px" }));

2 个答案:

答案 0 :(得分:0)

在Snap中,text属性应该起作用。

var t = s.text(120, 120, "outside").attr({ "font-size": "15px" })
g.add(t)
t.attr("text","changed")

您可以使用Snap()方法引用Snap中现有的SVG元素。例如

Snap("#textelement").attr("text","changed")

所以您也可以尝试

Snap("#g54 text").attr("text","changed")

我不确定jquery是否可以与svg配合使用,因此最好直接使用Snap。

答案 1 :(得分:0)

毕竟,Snap选择器对大多数文本项都执行了此操作,但对某些文本项却没有(我看不到原因)。因此,我再次使用JQuery尝试了以下操作。

JQuery("#g54").children().text("this is my text");