javascript - JS 表单:如何将() push() 放入一个数组中,而不是每次单击提交时都创建一个新数组?
问题描述
每次我单击提交时,它都会创建一个带有对象的新数组
数组应该接收不断接收的对象而不是创建一个新的
JS:
const form = document.querySelector('#form')
form.addEventListener('submit', (e) => {
e.preventDefault()
const title = document.querySelector('#title').value
const img = document.querySelector('#img').value
const story = document.querySelector('#story').value
const author = document.querySelector('#author').value
const eachStory = {
myTitle : title,
myImg : img,
myStory : story,
myAuthor : author
}
let stories = []
stories.push(eachStory)
stories.forEach((story) => {
root.innerHTML +=
`
${eachStory.myTitle}
${eachStory.myStory}
${eachStory.myImg}
${eachStory.myAuthor}
`
})
console.log(stories)
})
HTML:
<body>
<div>
<form id="form">
<input type="text" id="title" >
<input type="text" id="img" >
<input type="text" id="story" >
<input type="text" id="author" >
<button>SUBMIT</button>
</form>
<div id="root"></div>
</div>
有人能告诉我我应该在这里做什么吗?
每次单击提交时,我都需要将对象添加到同一个数组中
解决方案
每次提交表单时,都会submit
触发事件并执行处理函数。因为,您正在函数内部初始化一个新stories
数组,所以每次提交表单时,都会stories
创建一个新数组。您可能希望将stories
数组声明移出函数,以便将新帖子添加到现有stories
数组中。
const form = document.querySelector('#form')
let stories= [];
form.addEventListener('submit', (e) => {...}
推荐阅读
- python - 如何将整数转换为时间
- c# - 在带有虚线下划线的 TextDecorations 的 TextBlock 中显示 DateTime
- python - 与使用 python 动态创建的用户交互
- python - 列表中字典字典中的数据框
- c# - Parallel.ForEach 或 Task.WhenAll 涉及异步操作时?
- python - 使用 PySpark 从名称不包含字符串的文件夹中读取文件
- azure - Azure:跨区域私有链接
- r - 当行不消失时删除 data.frame 中的所有空列和行
- java - 既然 Java 13 已经发布,我该如何在 Mac OSX 上安装 Java 12?
- css - 右侧有间隙的滚动条,可以在该间隙中看到内容