У меня есть 4 сложные полилинии в SVG, содержащиеся в родительском элементе (myLines). Я хочу сохранить полилинии в массиве, чтобы позже вызвать их в моем коде. По какой-то причине браузер считает, что между полилиниями внутри родительского элемента «myLines» есть скрытые текстовые узлы. Когда я пытаюсь найти узлы в инспекторе, используя инструменты разработчика, браузеры говорят «некоторые узлы были скрыты», ссылаясь на эти узлы.
Однако, когда я использую appendChild и перемещаю полилинии из одного элемента в другой, браузер обнаруживает только 4 полилинии, которые на самом деле там.
Что здесь происходит?
Я подумал о нескольких обходных путях, чтобы избежать этой проблемы, но я бы предпочел знать, что происходит wtf, так что я действительно могу это исправить и узнать, что я сделал не так.
var main = document.querySelector('main');
var lines = main.querySelectorAll('g#myLines');
var element=document.getElementById("myLines2");
var elArray=[];
console.log(lines);
for (z=0; z<4; z++){
console.log("lines[0].childNodes["+z+"]= "+lines[0].childNodes[z]);
elArray[z]=(lines[0].childNodes[z]);
/* element.appendChild(lines[0].childNodes[z]); */
}
Пожалуйста, проверьте эту скрипку. Если вы посмотрите в консоли и включите этот код "element.appendChild (lines [0] .childNodes [z]);" в строке 9 вы можете видеть, что текстовые узлы не отображаются с использованием appendChild.
https://jsfiddle.net/NZSIL/8psru5mv/
Спасибо !!