Перемещение svg-элемента

Добрый вечер!
Помогите, пожалуйста, разобраться с перемещением svg-элементов в определенное поле.
Мой код не срабатывает, скорее всего, из-за некорректного обращения к svg-элементу (он почему-то недоступен) в чем причина?

// Это svg-элемент:

        pageHTML += '         <div id="groups">';
        pageHTML += '                   <div id="first">';
        pageHTML += '                            <svg class="draggable" width="28" height="120" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">';
        pageHTML += '                                     <path fill="red" fill-opacity="0.2" stroke="#222222" stroke-width="2" d="M 2 14 L 2 104 a 10 10 0 0 0 20 0 L 22 14 L 2 14 z"></path>';
        pageHTML += '                                     <path fill="red" fill-opacity="0.5" stroke="red" stroke-width="0" d="M 3 64 L 3 104 a 9 9 0 0 0 18 0 L 22 64 L 3 64 z"></path>';
        pageHTML += '                            </svg>';
        pageHTML += '                            <h5>text</h5>';
        pageHTML += '                   </div>';
        pageHTML += '         </div>';

// Это поле для вставки svg-элемента:

        pageHTML += '         <div id="field">'; 
        pageHTML += '                   <div id="Field">';       
        pageHTML += '                                     <div id="leftField" ondrop="divDrop(event)" ondragover="divDragOver(event)" ondragenter="divDragEnter(event)" ondragleave="divDragLeave(event)" style="border: solid red 3px"></div>'; 
        pageHTML += '                                     <div id="rightField"></div>'; 
        pageHTML += '                   </div>';
        pageHTML += '         </div>';   
var leftField = document.getElementById('leftField');

// это события, которые должны сработать для перемещения элемента в определенную область:

function divDragEnter(eo) {
    eo=eo||window.event;
    eo.preventDefault();
    eo.currentTarget.style.borderStyle="dashed";
}
function divDragLeave(eo) {
    eo=eo||window.event;
    eo.preventDefault();
    eo.currentTarget.style.borderStyle="solid";
}

function divDragOver(eo) {
    eo=eo||window.event;
    eo.preventDefault();
}

function divDrop(eo) {   
    eo=eo||window.event;
    eo.preventDefault();
    var elem = document.getElementById('first');
    const dragElem=elem.getElementsByClassName('draggable'); 
    eo.currentTarget.appendChild(dragElem);
}

Благодарю за помощь!!!

В первую очередь ошибка в подписке на события.
Например ondrop
В Вашем коде, загружается страница и событию ondrop присваивается результат выполнения функции divDrop которой в качестве параметра передается переменная event которой не существует.

Событию нужно присвоить просто саму функцию-обработчик.
Например.
ondrop=“divDrop”

Спасибо за пояснения.
Еще такой вопрос: можно ли обращаться к svg-элементу через document.getElementById() или document.getElementsByTagName(‘svg’), например? Не получается сдвинуть с места svg.

Да.

По исходному коду не понять что дальше происходит в переменной pageHTML.

Возможно код пытается обращаться к элементу до того как pageHTML куда-то присваивается. Самый простой способ разобраться с очередностью это переместить вставку скрипта перед закрывающим </body>.

В консоли есть какие ошибки?

Консоль не выдает ошибок, буду дальше разбираться, спасибо!

Проставь console.log-и элемента который должен двигаться, всякие eo.currentTarget. Есть вариант что элемент удаляется и перезаписывается другим. Есть вариант что после удаления элемента из его начального места поведение обработчиков может меняться. Короче куча вариантов. И единственный способ разобраться это логгировать (или использовать debugger) и смотреть пошагово выполняется ли то что задумывалось.

ок, так и сделаю, спасибо!