Javascript 如何使用“获取选择选项元素的ID”;更改“;事件侦听器?
我是javascript新手,我一直在做这个“项目”,但我需要一些帮助,因为我被卡住了。我可能没有在标题中正确地表达我自己,因此: 我想通过使用Javascript 如何使用“获取选择选项元素的ID”;更改“;事件侦听器?,javascript,arrays,function,api,Javascript,Arrays,Function,Api,我是javascript新手,我一直在做这个“项目”,但我需要一些帮助,因为我被卡住了。我可能没有在标题中正确地表达我自己,因此: 我想通过使用上的事件侦听器获取选项元素()的ID,因此当我从选择下拉列表中选择例如“操作”时,我希望该更改触发一个函数,该函数将获取该元素的ID并在下面的函数中使用它。这是我到目前为止的代码,它基本上实现了以下功能: 1.)获取流派列表 2.)然后为response.data.genres中的每个项目设置一个与数组长度相对应的数字(总共19个项目) 3.)如果所选的
上的事件侦听器获取选项元素(
)的ID,因此当我从选择下拉列表中选择例如“操作”
时,我希望该更改触发一个函数,该函数将获取该元素的ID并在下面的函数中使用它。这是我到目前为止的代码,它基本上实现了以下功能:
1.)获取流派列表
2.)然后为response.data.genres
中的每个项目设置一个与数组长度相对应的数字(总共19个项目)
3.)如果所选的“option”
元素与数组中的流派名称匹配,则它将定义流派ID(整数),并向API发出另一个请求,以便列出与该流派ID匹配的电影。请提前感谢
//Genres
function genres(){
//API request.
axios.get("https://api.themoviedb.org/3/genre/movie/list?api_key=<API_KEY>&language=en-US")
.then((response)=>{
//console.log(response);
let genres = response.data.genres;
genres.length;
console.log(genres)
for(var i = 0; i < genres.length; i++){
var genresId = response.data.genres[i];
var tag = document.getElementById("Thriller");
console.log(genresId);
if(tag.id === genresId.name){
let genre = genresId.id;
axios.get("https://api.themoviedb.org/3/discover/movie?api_key=<API_KEY>&language=en-US&sort_by=popularity.desc&include_adult=false&include_video=false&page=1&with_genres="+genre)
.then((response)=>{
console.log(response);
})
}
}
})
}
//类型
函数类型(){
//API请求。
axios.get(“https://api.themoviedb.org/3/genre/movie/list?api_key=&language=en-美国”)
。然后((响应)=>{
//控制台日志(响应);
让genres=response.data.genres;
体裁。长度;
console.log(类型)
for(var i=0;i{
控制台日志(响应);
})
}
}
})
}
如果我理解正确,那么有两个步骤。
1.获取流派列表并用其填充选择框。
2.如果选择了选择框中的选项,则获取电影列表
第一步,可以使用innerHTML方法。对于返回的每个流派,您构建一个类似genre
的字符串。使用innerHTML,可以将这些选项添加到选择框中。“值”属性用于查看选择了哪个选项
接下来,我们向dropbox添加一个eventlistener,这样我们的脚本将对用户所做的更改做出反应。我们正在侦听的事件是“change”,它将触发函数“getMovies”。有关更多信息,请参阅event.target.value
将为您提供所选选项的值,您可以将其用作流派id
在这个函数中,您将执行第二个api调用来获取电影列表
没有api调用的一个简单示例如下:
让genreDropdown=document.getElementById('genre');
genreDropdown.innerHTML=getGenres();
genreDropdown.addEventListener(“更改”,getMovies);
函数getGenres(){
let genres=['action'、'romcom'、'thriller'];//这将替换为获取类型的api调用
让innerHtml='';
for(var i=0;i
加载。。。
以下代码将查找
(其id准确无误)元素,并在更改时输出直接子元素的id(
)
我为你树立了一个榜样>
希望您能使用jQuery代码。您能粘贴您的选择选项代码和更改事件代码吗?可能重复的问题我不知道如何将其标记为该问题的可能重复,而这仅适用于普通Javascript。尽管如此,我们还是会找到解决办法:)
$(document).ready(function(){
$("#myDropdown").on("change", function(){
the_id = $(this).children(":selected").attr("id")
$("#output").html(the_id);
});
});