我有一个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>
答案 0 :(得分:2)
不,<use>
只是基础内容的视图(<use>
指向的内容)。它没有自己的内容DOM。
如果您在<use>
元素中创建内容,则会被忽略,如您所见。
如果您想拥有不同的内容,那么您可以使用element.cloneNode()自行克隆并附加它,但请注意不要创建重复的元素ID。