javascript - JS : Clicking on a object from array

标签 javascript html

我有一个包含在 HTML 中的对象数组。 我必须能够点击<a href='#' class='addToCart'>Order</a> 并将单击的对象数据添加到我的 console.log("...");。

执行此操作的最佳方法是什么?

片段:

"use strict";

document.addEventListener('DOMContentLoaded', loadMeals);

const meals = [
    {
        id: 1,
        title: 'Strawberry Salad with Poppy Seed Dressing',
        img: 'Strawberry-Salad-with-Poppy-Seed-Dressing.jpg',
        book: 1,
        calories: 298,
        servings: 3,
        type: 'lunch',
        price: 15,
        cook: 'Jenny Jefferson',
        quantity: 10,
    },
    {
        id: 2,
        title: 'Cashew Turkey Salad Sandwiches',
        img: 'turkey-sandwich.jpg',
        book: 2,
        calories: 198,
        servings: 2,
        type: 'lunch',
        price: 9,
        cook: 'Jenny Jefferson',
        quantity: 10
    }
];


function loadMeals() {
    let i = 0;
    let id = 1;
    let fillMealList = document.querySelector("#fillMealList");
    for (let i = 0; i < meals.length; i++) {
        let item = meals.find(item => item.id === id);
        fillMealList.innerHTML +=
            "<article>"+
            "<h3>" + item.title + "</h3>"+
            "<figure>"+
            "<img src='images/" + item.img + "'" +">" +
            "<figcaption>"+
            "Meal by: " +"<span>" + item.cook + "</span>" +
            "</figcaption>" +
            "</figure>"+
            "<div class='info'>"+
            "<p>€ <span>" + item.price + "</span>" + "/pp" + "</p>" +
            "<a href='#' class='addToCart'>Order</a>"+
            "</div>"+
            "</article>";
        id++;
    }
}
<div id="mealList">
            <div class="flexcontainer" id="fillMealList"></div>
            </div>

最佳答案

更改您的超链接 HTML,如下所示:

"<a href='javascript:logMeal(" + item.id + ")' class='addToCart'>Order</a>"+

并添加一个名为 logMeal 的新函数如下:

function logMeal(id) {
    console.log(meals.find(item => item.id === id));
}

关于javascript - JS : Clicking on a object from array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719705/

相关文章:

JavaScript 对象数字索引像数组一样排序

javascript - Node ,如何在 Node/express 应用程序上发送响应 header ?

javascript - 表单字段依次输入

javascript - 使用指向不同质量版本的源更改视频质量

JavaScript 删除我的文本框中的文本

javascript - 在用户时间线上发布操作时出现问题

javascript - 包含已更新变量的文件,并且其他文件看到该更改?

javascript - ng-repeat 定义的次数而不是在数组上重复的方法?

javascript - 使用 currentTime 时视频滞后

javascript - 如何访问文档根目录之外的 Javascript 文件?