是否可以更改作为文本元素的克隆的svg use元素的textContent值?

时间:2014-06-14 06:34:25

标签: javascript svg text element

我有一个svg文本元素,我用use元素克隆了它。有没有办法更改use元素克隆的文本值,使其与源元素不同?我尝试了以下但没有成功。

use2[i]=document.createElementNS(svgns, "use");
use2[i].setAttributeNS(xlinkns, "xlink:href", "#hsc");
use2[i].setAttribute("x", ((i+1)*45+45));
use2[i].setAttribute("y", "0");
use2[i].textContent=(useCount+3);
document.getElementById("redarrows").appendChild(use2[i]);

浏览器dom explorer显示use元素具有useCount + 3值的textContent,但在屏幕上,use元素仍然显示源文本元素的textContnet。

这是我正在克隆的文本元素。

<text id="hsc" x="52.5" y="137" font-family="'Utsaah'" font-size="21">1</text>

1 个答案:

答案 0 :(得分:2)

不,<use>只是基础内容的视图(<use>指向的内容)。它没有自己的内容DOM。

如果您在<use>元素中创建内容,则会被忽略,如您所见。

如果您想拥有不同的内容,那么您可以使用element.cloneNode()自行克隆并附加它,但请注意不要创建重复的元素ID。