Я создаю древовидный элемент управления и пытаюсь использовать родительский элемент в качестве шаблона для его дочерних элементов.Для этого я использую метод element.cloneNode (true) для глубокого клонирования родительского элемента.Однако когда я вставляю клонированный элемент в DOM, он пропускает некоторые внутренние элементы , несмотря на то, что значение externalHTML идентично его родительскому элементу.Удивительно Я наблюдаю то же поведение в IE, Firefox и Chrome , что наводит меня на мысль, что это так.
Это HTML-код узла, который я пытаюсь клонировать.
<SPAN class=node><A class=nodeLink href="/SparklerRestService2.aspx?q={0}" name=http://dbpedia.org/data/Taylor_Swift.rdf>
<IMG class=nodeIcon alt="Taylor Swift" src="images/node.png"><SPAN class=nodeText>Taylor Swift</SPAN></A><SPAN class=nodeDescription>Taylor Swift is a swell gall who is realy great.</SPAN></SPAN>
Как только я клонировал узел, используя cloneNode (true), я проверяю свойство externalHTML и обнаруживаю, что оно действительно идентично оригиналу.
<SPAN class=node><A class=nodeLink href="/SparklerRestService2.aspx?q={0}" name=http://dbpedia.org/data/Taylor_Swift.rdf><IMG class=nodeIcon alt="Taylor Swift" src="images/node.png"><SPAN class=nodeText>Taylor Swift</SPAN></A><SPAN class=nodeDescription>Taylor Swift is a swell gall who is realy great.</SPAN></SPAN>
Однако, когда я вставляюэто в DOM и проверить результат с помощью FireBug Я обнаружил, что элемент был преобразован:
<span class="node" style="top: 0px; left: 0px;"<a class=nodeLink href="/SparklerRestService2.aspx?q={0}" name=http://dbpedia.org/data/Taylor_Swift.rdf>Taylor Swift</a><span class="nodeDescription">Taylor Swift is a swell gall who is realy great.</span></span>
Обратите внимание, что внуки узла (тег изображения и тег span, окружающие "Taylor Swift")отсутствует, хотя странно, что текстовый узел правнука "Тейлор Свифт" превратил его в дерево.
Может кто-нибудь пролить свет на это поведение? Почему узлы исчезают после вставки в DOM, и почему я вижу одинаковый результат во всех трех основных механизмах браузера?