如何使用本机javascript在列表中的数组中追加数据
我从API调用数据并按名称列出数据。我想从列表中按名称搜索和添加对象(使用AddFavMovie按钮),并使用本机javascript将该对象的整个数据存储在一个数组中 我可以在Angularjs中实现这一点,但使用本机javascript的想法较少如何使用本机javascript在列表中的数组中追加数据,javascript,arrays,Javascript,Arrays,我从API调用数据并按名称列出数据。我想从列表中按名称搜索和添加对象(使用AddFavMovie按钮),并使用本机javascript将该对象的整个数据存储在一个数组中 我可以在Angularjs中实现这一点,但使用本机javascript的想法较少 函数addListItem(标题,listId){ var ul=document.getElementById(listId); var li=document.createElement(“li”); li.className='列表组项';
函数addListItem(标题,listId){
var ul=document.getElementById(listId);
var li=document.createElement(“li”);
li.className='列表组项';
li.appendChild(document.createTextNode(title));
ul.儿童(li);
}
函数后加载(){
var data=JSON.parse(this.responseText);
var name=document.createElement('img');
const results=data.results;
//循环浏览项目
results.forEach(项目=>{
addListItem(item.title,“items”);
});
name.src=data.title;
document.body.appendChild(名称);
}
函数afterClick(){
//将目标更改为焦点搜索
var terms=document.getElementById(“搜索”).value.split(“”).join(‘+’);
var request=new XMLHttpRequest();
请求。addEventListener(“加载”,后加载);
request.open('GET','https://api.themoviedb.org/3/search/movie?api_key=8318c431b4fc8a2c4762bf2a52c351ee&query="条款",;
request.send();
}
按钮。addEventListener(“单击”,单击后)代码>
拍电影
看电影123
添加Fav电影
列表
您可以使用Array.filter创建仅包含选定项的新数组
var filteredItems = allItems.filter(item => {
if (itesm.year > 1980)
return true
else
return false;
})
或
您可以使用Array.forEach方法遍历原始数组,并对项目执行任何操作:
allItems.forEach(item => {
if (item.year > 1980)
addListItem(item.title, "items");
})
您还可以通过JSFIDLE进行检查
我已经删除了第二个表单,并为第二个底部和输入字段添加了ID。并针对第二次点击按钮添加了另一个函数调用
函数addListItem(标题,listId){
var ul=document.getElementById(listId);
var li=document.createElement(“li”);
li.className='列表组项';
li.appendChild(document.createTextNode(title));
ul.儿童(li);
}
函数后加载(){
var data=JSON.parse(this.responseText);
var name=document.createElement('img');
const results=data.results;
//循环浏览项目
results.forEach(项目=>{
addListItem(item.title,“items”);
});
name.src=data.title;
document.body.appendChild(名称);
}
函数afterClick(){
//将目标更改为焦点搜索
var terms=document.getElementById(“搜索”).value.split(“”).join(‘+’);
控制台日志(术语);
var request=new XMLHttpRequest();
请求。addEventListener(“加载”,后加载);
request.open('GET','https://api.themoviedb.org/3/search/movie?api_key=8318c431b4fc8a2c4762bf2a52c351ee&query="条款",;
request.send();
}
函数addToList(){
var favMovieName=document.getElementById(“fabinput”).value;
addListItem(favMovieName,“项目”);
console.log(favMovieName);
}
按钮。addEventListener(“单击”,单击后);
addfav.addEventListener(“单击”,addToList)代码>
拍电影
看电影123
添加Fav电影
列表
据我所知,您是正确的,您希望MovieDB中的movies对象并将所有结果附加到列表项中
首先,您需要替换:
request.addEventListener('load', afterLoad);
与:
然后需要真正定义按钮。。以下是一个工作示例:
函数addListItem(标题,listId){
var ul=document.getElementById(listId);
var li=document.createElement(“li”);
li.className='列表组项';
li.appendChild(document.createTextNode(title));
ul.儿童(li);
}
函数后加载(){
var data=JSON.parse(this.responseText);
var name=document.createElement('img');
const results=data.results;
//循环浏览项目
results.forEach(项目=>{
addListItem(item.title,“items”);
});
name.src=data.title;
document.body.appendChild(名称);
}
函数searchMovie(){
var terms=document.getElementById(“搜索”).value.split(“”).join(‘+’);
var request=new XMLHttpRequest();
request.onload=后加载;
request.open('GET','https://api.themoviedb.org/3/search/movie?api_key=8318c431b4fc8a2c4762bf2a52c351ee&query="条款",;
request.send();
}
var button=document.getElementById('button');
按钮。添加EventListener(“单击”,搜索电影)代码>
看电影123
添加Fav电影
列表
在input
(喜爱的电影)中键入电影名称并点击submit
,检查输入是否有任何值。如果有,则创建您喜爱的电影列表的textContent
数组,然后应用过滤器以获取名称与用户输入值匹配的电影对象
函数addListItem(标题,listId){
var ul=document.getElementById(listId);
var li=document.createElement(“li”);
li.className='列表组项';
li.appendChild(document.createTextNode(title));
ul.儿童(li);
}
让结果;
函数后加载(){
var data=JSON.parse(this.responseText);
var name=document.createElement('img');
结果=数据。结果;
//循环浏览项目
results.forEach(项目=>{
addListItem(item.title,“items”);
});
name.src=data.title;
document.body.appendChild(名称);
}
函数afterClick(){
//将目标更改为焦点搜索
var terms=document.getElementById(“搜索”).value.split(“”).join(‘+’);
var request=new XMLHttpRequest();
请求。addEventListener(“加载”,后加载);
request.open('GET','https://api.themovied
request.onload = afterLoad;