Есть функция которая строит на странице основу, добавляя SVG и не только элементы на страницу.
примерный код:
function initdivcart(){
let tdformap = document.querySelector('body > table > tbody > tr:nth-child(1) > td:nth-child(3)');
let divcart = document.createElement('div');
divcart.setAttribute('id', 'divcart');
let cart = document.createElementNS(svgNS, 'svg');
cart.setAttributeNS(null, 'id', 'cart');
let glabwall = document.createElementNS(svgNS, 'g');
glabwall.setAttributeNS(null, 'id', 'labwall');
let g = document.createElementNS(svgNS, 'g');
g.setAttributeNS(null, 'id', 'lab');
cart.append(g);
cart.append(glabwall);
divcart.append(cart);
tdformap.append(divcart);
}
а так же вытаскивание некой информации из IndexedDB(суть не в данных всё равно):
function dbget(table, ind, key) {
return new Promise((resolve) => {
let openRequest = indexedDB.open('FV', 6);
openRequest.onsuccess = function() {
let db = openRequest.result;
let transaction = db.transaction(table, 'readonly');
let labs = transaction.objectStore(table);
let index = labs.index(ind);
let request = index.getAll(key);
request.onsuccess = function() {
let res = request.result;
db.close();
resolve(res);
};
};
});
}
далее есть условие, если нет элемента с id = divcart, то тогда произвести инициализацию
if(!document.getElementById('divcart')){
console.log('1'+document.getElementById('labwall'));
initdivcart();
console.log('2'+document.getElementById('labwall'));
dbget('labs', 'lablvlID', lablvlID).then(resthis => {
for(let xxlab of resthis){
console.log('3'+document.getElementById('labwall'));
labwall(xxlab);
console.log('4'+document.getElementById('labwall'));
}
itemonlab(lab);
});
}
Заметили я расставил консольлоги? Так вот что мне выводится в консоль:
1null
2[object SVGGElement]
3null
Uncaught (in promise) TypeError: Cannot read property 'append' of null
1 - это понятно, еще не было инициализации и такого элемента нет.
2 - элемент появился
3 - элемент исчез по какой то причине. Из-за того что в дальнейшей функции "labwall" у меня как раз используется SVG элемент с id "labwall" у меня крашится с ошибкой "Cannot read property 'append' of null".
Вот я и не пойму, почему на "этапе №3" у меня пропадает элемент?
Если что-то не понятно - задавайте вопросы, распишу подробнее.