Как клонировать html элементов из массива в новый родительский элемент - PullRequest
2 голосов
/ 05 марта 2020

У меня есть задача - список дел. У меня проблема, потому что я не знаю, как переместить элементы из родительского «приоритета» в родительский «стандарт».

Мой код кнопки для перемещения:

moveToStandardButton.addEventListener('click', function() {
    const allListElements = document.querySelectorAll('[data-id="move"]');
    for (let i = 0; i < allListElements.length; i++) {
        let toClone = allListElements[i].checked;
    }
})

toClone shoud иметь все элементы списка, которые проверяются пользователем, а затем после нажатия кнопки следует переместить эти элементы в родительский «стандарт». Я пытался сделать это так, но я не могу использовать cloneNode в toClone или toClone [i].

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Так что после прочтения вашего вопроса я бы порекомендовал вам посмотреть или прочитать некоторые руководства по JavaScript. У вас есть некоторые явные проблемы, которые станут очень очевидными, если вы потратите некоторое время на обучение.

Тем не менее, я могу оказать некоторую помощь, чтобы указать вам правильное направление.

1) Не рекомендуется использовать атрибуты данных в качестве идентификаторов элементов. Вместо этого я бы использовал класс, а не data-id="move"

2) Ваша строка let toClone определена внутри для l oop и определена как таковая. Он не будет доступен за пределами для l oop.

3) Попробуйте создать массив вне вашего для l oop и сохранить каждый проверенный элемент внутри него, а затем работать с ними после ваш л oop.

0 голосов
/ 05 марта 2020

Если вы регистрируете toClone, это, вероятно, логическое значение (true или false), так как оно проверяет, является ли элемент checked.

Попробуйте следующее:

moveToStandardButton.addEventListener('click', function() {
    // Get all elements that have a data-id of move
    // I'm assuming these elements are the ones that need to move ;)
    const allListElements = document.querySelectorAll('[data-id="move"]');
    // iterate through the elements that need to move
    for (let i = 0; i < allListElements.length; i++) {
        let toClone = allListElements[i]; // Note that 'checked' isn't involved
        if(!toClone.checked) continue; // If the element isn't checked, move to next element.
        const clonedEl = toClone.cloneNode(true);
        document.querySelector('#myOtherList').appendChild(clonedEl);
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...