Добавление элементов в массив - Отдельно

Цель: нажмите кнопку, и ингредиенты будут добавлены в массив как отдельные элементы.

Текущая настройка:

    <% currentUser.ingredients.forEach(function(items){ %> 
   <p class='ingredients'>  <%= items %> </p>
    <% }) %>

Это дает: Черника Манго Лимонный сок

Затем я хотел бы иметь возможность добавлять ингредиенты в виде отдельных элементов в массив, нажав кнопку:

var allIngredients = []

$("#makeList").click(function() {

allIngredients.push($(".ingredients").text())
console.info(allIngredients)

}); 

Это печатает ["Черника, манго, лимонный сок"]

Проблема в том, что это все один элемент, а не отдельные элементы.

Что мне нужно изменить, чтобы сделать их отдельными элементами?

попробуйте добавить с помощью .split()

Zombie 28.05.2019 20:00

allIngredients.concat($(".ingredients")) // предполагается, что $ingredients возвращает массив

Thinkhoop 28.05.2019 20:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам нужно повторить $('.ingredients')

var allIngredients = [];

$("#makeList").click(function() {

    $(".ingredients").each(function() {
        allIngredients.push($(this).text());
    });

    console.info(allIngredients);

}); 

Ты герой. Спасибо!

AndrewLeonardi 28.05.2019 20:04

Вы опередили меня на несколько минут :) Но это не даст желаемого результата для многословных значений.

Gaurav 28.05.2019 20:11

Простое разделение или цикл по текстовым узлам не даст ожидаемого результата, если значение может состоять из нескольких слов. Для надежного решения окружите отображаемые значения некоторым тегом html.

<% currentUser.ingredients.forEach(function(items){ %> 
   <p class='ingredients'>  <span class = "ingredient"><%= items %></span> </p>
<% }) %>
var allIngredients = []

$("#makeList").click(function() {

    $(".ingredients").find('.ingredient').each(function() {
        allIngredients.push($(this).text());
    });
    console.info(allIngredients)

}); 

Другие вопросы по теме