HTML元素上的Javascript onclick事件

问题描述 投票:0回答:1

我已经获得了使我可以搜索产品列表,然后生成与搜索词匹配的HTML列表的代码。我的下一步是能够单击产品的随附图片或其名称,然后将其添加到购物车部分。我知道onclick事件将有助于完成此操作,但不确定实现情况。任何指导将不胜感激!

另外:我尝试了代码

HTML

<img class="imgInteract">

JS

var imgInteract = document.getElementsByClassName('img')

尝试并能够选择列表中生成的img元素,但似乎不起作用。

HTML

<form>
  <p>Please insert the items</p>
  <input type="text" id="box" />
</form>

<div id="root"></div>

<h3>
shopping cart
</h3>

CSS

  img {
    height: 100px;
  }
  li {
    display: inline-block;
  }

JS

const catalog = {

  GalaxyTablet: {
    name: "GalaxyTablet",
    key: "galaxytablet",
    keywords: ["galaxy", "tablet", "samsung"],
    price: 800,
    image: "https://www.jbhifi.co.nz/FileLibrary/ProductResources/Images/150044-M-HI.jpg"
  },
  GalaxyPhone: {
    name: "GalaxyPhone",
    key: "galaxyphone",
    keywords: ["galaxy", "phone", "samsung"],
    price: 1000,
    image: "https://assets.kogan.com/files/product/etail/Samsung-/S10WHT_03.jpg?auto=webp&canvas=753%2C502&fit=bounds&height=502&quality=75&width=753"
  },
  HTCPhone: {
    name: "HTCPhone",
    key: "htcphone",
    keywords: ["htc", "phone"],
    price: 650,
    image: "https://cdn.mos.cms.futurecdn.net/ca063713e185be46e62ec2eb3762a540.jpg"
},

};

const form = document.querySelector("form");

form.addEventListener("submit", submitHandler);

function submitHandler(event) {
  event.preventDefault();

  const searchTerm = form.box.value;
  const results = search(searchTerm);

  render(results);
}

function search(searchTerm) {
  return Object.keys(catalog)
    .filter((key) => catalog[key].keywords.includes(searchTerm.toLowerCase()))
    .map((key) => catalog[key]);
}

function render(results) {
  const root = document.querySelector("#root");
  const list = results.map(itemToLi).join("");

  root.innerHTML = `<ul>
    ${list}
  </ul>`;
}

function itemToLi(item) {
  return `<li>${item.name}</li>$ ${item.price}<li> <li><img src="${item.image}"></li>`;
}
javascript html click
1个回答
0
投票
function itemToLi(item) { return `<li>${item.name}</li>$ ${item.price}<li> <li><img class="imgInteract" src="${item.image}"></li>`; } root.addEventListener('click',(e)=>{ if(e.target.className=='imgInteract') console.log('add to shopping cart') })
© www.soinside.com 2019 - 2024. All rights reserved.