Распределение по инпутам

Всем привет! У меня такая проблема, которую решить не может даже чатгпт. В общем, я хочу сделать распределение артистов в инпуты. Есть такой код:

const primaryArtistElements = xmlDoc.querySelectorAll('PrimaryArtist');

primaryArtistElements.forEach((artist, index) => {
            const inputId = `line${index}primary_artist`;
            const primaryArtist = artist.textContent.trim();
            // Используем функцию для нахождения элемента с учетом динамически добавленных полей
            findElementById(inputId, function(inputElement) {
                setValueOrError(inputElement, primaryArtist, `Не удалось найти поле с ID "${inputId}" на странице.`);
            });
        });

// Функция для поиска элемента по id с учетом динамически добавленных полей
    function findElementById(id, callback) {
        const observer = new MutationObserver((mutationsList, observer) => {
            mutationsList.forEach((mutation) => {
                if (mutation.type === 'childList') {
                    const element = document.getElementById(id);
                    if (element) {
                        observer.disconnect(); // Отключаем наблюдение после нахождения элемента
                        callback(element);
                    }
                }
            });
        });

        observer.observe(document.body, { childList: true, subtree: true });
        // Если элемент уже на странице, сразу вызываем callback
        const element = document.getElementById(id);
        if (element) {
            observer.disconnect();
            callback(element);
        }
    }

line${index}primary_artist - id инпутов, где index это номер инпута. Не знаю почему, но когда у меня указано 2 артиста <PrimaryArtist>Артист 1</PrimaryArtist> и <PrimaryArtist>Артист 2</PrimaryArtist> то в первый инпут вставляется только первый артист, вторые инпуты игнорируются польностью. Система инпутов такова, как только в инпуте написать 1 символ то сайт(не мой) создает новый инпут с айди line${index}primary_artist.

Ожидал что скрипт вставит по одному артисту в инпуты с айди line${index}primary_artist, но в итоге вставляется только 1 артист в 1 инпут, остальные артисты в другие инпуты не вставляются.

принцип работы инпутов


Ответы (0 шт):