getElementById () не работает после изменения документа SVG - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть документ 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;
    }
}

1 Ответ

0 голосов
/ 15 февраля 2012

Похоже, что getElementById () не нашел вновь добавленные элементы, потому что они не были распознаны как элемент svg;в них отсутствовало пространство имен svg.Как только я добавил пространство имен, все заработало.Пожалуйста, смотрите этот ответ для более подробной информации.

...