У меня есть документ SVG;скажем, как показано ниже:
<svg>
<g ...>
<rect id="perm1" ../>
<rect id="temp1" ../>
</svg>
во время выполнения я меняю идентификатор второго 'rect' с 'temp1' на 'calc_id1' с помощью функций скрипта Java (см. ниже);но сразу после его изменения я вызываю другую функцию, в которой я пытаюсь получить прямоугольный элемент, используя getElementById () с новым идентификатором 'calc_id1';но возвращается ноль.Я не уверен, что здесь не так, но я могу подтвердить, что прямоугольный элемент обновляется с новым идентификатором.Любая подсказка или ответ будут мне очень полезны.
Обратите внимание, что я использую IE9.
changeID( xmlDoc, "//g[@id='temp1']", "calc_id1");
function changeID( xmlDoc, xPath, newIdValue ) {
var node = xmlDoc.selectSingleNode(xPath);
if (node!=null){
var oAttr = node.attributes.getNamedItem( "id");
if (oAttr!=null){
oAttr.text = newIdValue;
}
return node;
}
else {
return null;
}
}