更改文本SVG的内容

change textContent of SVG

本文关键字:SVG 文本      更新时间:2023-09-26

我有一个情况,我想在其他地方调用这个相同的 SVG 函数,所以我这样做:

function second() {
    one();
}

但是在函数 second() 中,我想更改函数 one() 文本内容。

function second() {
    one();
    document.querySelector("#textError").textContent = ("new text");
}

当我运行这个函数时,它可以工作,但前提是我先加载函数 one() 来创建 svg。 然后我可以调用函数 second() 来更改文本。 但我想先调用函数 second()。 它给了我:

控制台错误:无法设置未定义或空引用的属性"文本内容"

向函数one添加一个参数。

function one(textContent){ 
    ....................
    ....................    
    var t = document.createElementNS('http://www.w3.org/2000/svg','text');
    t.setAttribute("id", "textError");
    t.textContent = textContent?textContent:"hello";
    svgError.appendChild(t);
    ....................
    ....................
}

现在,将新文本作为参数从"第二个"函数发送到one函数。

function second() {
    one("new text");
}

编辑:若要从其他部分获取文本并传递,请按如下所示进行代码。

function second() {
    var newText = this.getText();
    one(newText); // one(this.getText());
}