【发布时间】:2020-12-07 09:39:49
【问题描述】:
我正在开发一个从 API 获取数据并根据从 API 接收的数据创建书籍列表的应用程序。它是一个提供书名和信息的 API。我生成了动态 li 元素并在 li 中生成了一个按钮。每个按钮都有一个隐藏的输入元素,其中保留了书名。问题是我正在尝试为按钮定义一个 onclick 事件侦听器,因为按钮是动态生成的,它们没有 id。我想为按钮创建一个事件侦听器,以便一旦单击一个特定按钮,就会传递在按钮内部定义的隐藏输入元素的值。我想不出办法做到这一点。如何使其了解单击了哪个特定按钮,以便返回附加到它的输入值。 任何帮助将非常感激。 这是我的代码的一部分。
async function overViewMaker(){
const response = await fetch(api_url_overview.concat(api_key));
let data = await response.json();
data = data.results.lists;
data.forEach(book => {
let mybook = book.books;
mybook.forEach(eachbook => {
var book_div = document.getElementById('book_list');
var liTag = document.createElement("li");
var aTag = document.createElement("buttom");
var inpuHidden = document.createElement("input");
inpuHidden.setAttribute("type", "hidden");
inpuHidden.value = eachbook.title;
aTag.appendChild(inpuHidden);
liTag.appendChild(aTag);
book_div.appendChild(liTag);
});
});
}
【问题讨论】:
-
你会使用addEventListener元素方法
-
顺便说一下,为了改进你的代码,将
var book_div = document.getElementById('book_list');移到forEach循环之外
标签: javascript html