Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用本机javascript在列表中的数组中追加数据_Javascript_Arrays - Fatal编程技术网

如何使用本机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='列表组项';

我从API调用数据并按名称列出数据。我想从列表中按名称搜索和添加对象(使用AddFavMovie按钮),并使用本机javascript将该对象的整个数据存储在一个数组中

我可以在Angularjs中实现这一点,但使用本机javascript的想法较少

函数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;