我有一种情况,我想在其他地方调用相同的svg函数,所以我这样做:
function second() {
one();
}
但是在函数second()中我想改变函数one()textContent。
function second() {
one();
document.querySelector("#textError").textContent = ("new text");
}
当我运行此函数时它可以工作,但只有当我首先加载函数one()来创建svg时。然后我可以调用函数second()来更改文本。但我想先调用函数second()。它给了我:
控制台错误:无法设置未定义或空引用的属性“textContent”
答案 0 :(得分:2)
为函数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);
....................
....................
}
现在,将新文本作为参数从' second`函数发送到one
函数。
function second() {
one("new text");
}
修改强> 要从其他部分获取文本并通过,代码如下所示。
function second() {
var newText = this.getText();
one(newText); // one(this.getText());
}