Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改svg元素中的字符串(文本元素)_Javascript_Svg - Fatal编程技术网

Javascript 更改svg元素中的字符串(文本元素)

Javascript 更改svg元素中的字符串(文本元素),javascript,svg,Javascript,Svg,我只是在玩一些svg图形。 实际上,我有一个svg图形,其中包含一些分组元素。 我喜欢复制其中一个元素,并在其文本字段中为其赋予新值 首先,我复制元素: var selectedSymbol = document.getElementsByClassName('selected'); if(selectedSymbol.length >>0) { var newSymbol = selectedSymbol[0].cloneNode(true); //now Chan

我只是在玩一些svg图形。 实际上,我有一个svg图形,其中包含一些分组元素。 我喜欢复制其中一个元素,并在其文本字段中为其赋予新值

首先,我复制元素:

var selectedSymbol = document.getElementsByClassName('selected');
if(selectedSymbol.length >>0)
{
    var newSymbol = selectedSymbol[0].cloneNode(true);
    //now Change Information of <text id='BMK'>emptyBMK</text>
}
var selectedSymbol=document.getElementsByClassName('selected');
如果(selectedSymbol.length>>0)
{
var newSymbol=selectedSymbol[0]。克隆节点(true);
//现在更改emptyBMK的信息
}

当然,每个分组的符号都有这个文本字段,具有相同的id,所以我想我只需要在选定的符号中更改它,但newSymbol.getElementsById('BMK')不起作用:(

好的,我这样做了,但我不确定这是否是一个好的做法:

for (var x = 0; x < newSymbol.childElementCount; x++)
{
    if(newSymbol.Children[x].id == "BMK")
        newSymbol.children[x].innerHTML = "newBMK";
}
for(var x=0;x
有人能告诉我这样行吗?

我的意思是它可以工作,但对我来说似乎有点奇怪。

newSymbol.id=“newUniqueID”
我不明白你的意思。分组元素有其唯一的Id,但每个分组元素中的文本Id都是相同的。因此,在将其附加到svg DRWAING之前,我需要更改克隆节点中的文本节点。这是一个非常简单的分组元素示例。{BMK}啊,它是一个后代?然后您可以执行
newSymbol.querySelector('[id=BMK]')
来获取它。
getElementById
只能作为一个整体用于文档。