Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.10.2023, 17:30
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Поймать выделенный элемент
Всем привет.

function addAdditional(el) {
    var colItem = checkOrder.childNodes
    var photo_title = el.dataset.title
    var photo_price = el.dataset.price
    var div_main = document.createElement('div')
    div_main.classList.add('col-main', 'row')
    var div_text = '<div class="text-left col-10"><span>' + photo_title + '</span></div>'
    div_main.innerHTML = div_text
    for (var i = 0; i < colItem.length; i++) {
        if (colItem[i].classList.contains('click')) {
            var date = colItem[i].dataset.dayhour
            for (var j = 0; j < additional.length; j++) {
                if (date == additional[j].dataset.dayhour) {
                    additional[j].classList.add('yes-add')
                    additional[j].append(div_main)
                }
            }
        }
    }
}


Я кликаю и выделяю блок, добавляя элементу класс click. Затем при нажатии на другую кнопку, вызываю уже даную ф-цию. И проверяю на сопадение. Работает, если выделен какой нибудь один блок. Если несколько, то вставляется только последний. Подскажите в чём ошибка?
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2024, 17:38
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Похоже спамеры добрались до пользования gpt 3 в своих скриптах.
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2024, 17:47
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Еще бы знать, что такое additional и как он формируется.

Опять же смущает colItem = checkOrder.childNodes
childNodes - это все узлы, включая пустые текстовые между элементами. Например перенос строки между элементами дает текстовый узел.
Для выбора только элементов надо colItem = checkOrder.children
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2024, 17:55
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

До меня дошло. Вы вставляете куда то созданный div_main. Потом снова вставляете его в другое место. Он благополучно туда переносится из первого места. Элемент то один. Его нельзя вставить в много мест.
Надо делать его копию

additional[j].append(div_main.cloneNode(true))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повернуть элемент мышкой LADYX Элементы интерфейса 2 26.04.2021 21:33
определить элемент под перетаскиваемым элементом slavaspirit Элементы интерфейса 3 26.07.2015 01:49
Спрятать только выделенный элемент ureech Events/DOM/Window 22 17.04.2015 13:13
Как узнать родительский элемент? alex_han Events/DOM/Window 6 06.12.2013 23:01
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10