Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2019, 17:05
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 40

Как сформировать массив ?
Я хочу получить по клику на кнопку всю информацию которая относится
только к его родителю т.е получить всё содержимое тегов.

Другими словами я хочу при клике на кнопку получить вот такое:

['какая то карточка 4','http://placehold.it/200/fcc','Какоето описание 4 которое может быть разное','какая то дополнительная 4 информация','40','']


У меня почти получилось, я получил все блоки, всё описание всех тегов внутри но вот при клике на копку собрать массив не могу , помогите разобраться

https://codepen.io/topicstarter/pen/pMyGdy
Ответить с цитированием
  #2 (permalink)  
Старый 24.07.2019, 17:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну наверное не такой массив, а с вложениями, иначе как им оперировать:

var result = document.getElementById("result");
var buttons = [...document.querySelectorAll(".res")];

[...buttons].forEach((button) => {
  button.addEventListener('click', elements);
});

function elements() {
   var arr = [...document.querySelectorAll(".item")].map((a) => {
        return [...a.children].map((b) => {
            return b.nodeName=='IMG' ? b.src : b.textContent;    
        })
   });
   
   console.log(arr);	
}
Ответить с цитированием
  #3 (permalink)  
Старый 24.07.2019, 17:44
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 40

а почему там сразу все выводятся?
вот видео того что выводится : https://www.dropbox.com/s/drjuj5gwht...-24_204925.mp4

Последний раз редактировалось maxim1978, 24.07.2019 в 17:49.
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2019, 17:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от maxim1978
а почему там сразу все выводятся?
То есть нужно только по текущей?
Ответить с цитированием
  #5 (permalink)  
Старый 24.07.2019, 17:52
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 40

ну да, все у меня и так выводятся без проблем, и можно ещё не в новом формате код? я только осваиваю js и новый формат я очень трудно понимаю
Ответить с цитированием
  #6 (permalink)  
Старый 24.07.2019, 17:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну тогда так:

function elements() {
   
   var arr = [...this.parentNode.children].map((a) => {
        return a.nodeName=='IMG' ? a.src : a.textContent;    
   });
   
   console.log(arr)

}


Вы же пишите document.querySelectorAll(".item"), а зачем, если получать только текущую. И видимо сама то кнопка не нужна, значит нужно так:

var arr = [...this.parentNode.children].slice(0, -1).map((a) => { ....
Ответить с цитированием
  #7 (permalink)  
Старый 24.07.2019, 18:03
Аспирант
Отправить личное сообщение для maxim1978 Посмотреть профиль Найти все сообщения от maxim1978
 
Регистрация: 07.05.2019
Сообщений: 40

Сообщение от laimas Посмотреть сообщение
Ну тогда так:

function elements() {
   
   var arr = [...this.parentNode.children].map((a) => {
        return a.nodeName=='IMG' ? a.src : a.textContent;    
   });
   
   console.log(arr)

}


Вы же пишите document.querySelectorAll(".item"), а зачем, если получать только текущую. И видимо сама то кнопка не нужна, значит нужно так:

var arr = [...this.parentNode.children].slice(0, -1).map((a) => { ....

Огромное спасибо - действительно работает ...а я уже три дня не могу это сделать ..спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему ошибка при статусе 200, или как сформировать ответ? [NodeJS&AJAX] blacklool AJAX и COMET 2 10.03.2015 21:36
Как получить из строки массив? optron Общие вопросы Javascript 0 28.01.2015 04:49
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как удалить массив? SunYang Общие вопросы Javascript 14 05.02.2010 14:31
Как лучше сделать глобальный массив skyfish AJAX и COMET 4 17.02.2009 18:05