首页 > 解决方案 > 如何使用“更改”事件侦听器获取选择选项元素的 ID?

问题描述

我是 javascript 新手,我一直在从事这个“项目”,但我需要一些帮助,因为我被困住了。我可能没有在标题中正确表达自己,所以这里是:

我想<select> <option id="#"> </select>通过使用"change"事件侦听器来获取选项元素 () 的 ID 所以当我从 select<select>.例如选择时,我希望该更改触发一个函数,该函数将获取该元素的 ID 并使用它下面的一个功能。这是我到目前为止的代码,它基本上执行以下操作:"Action"dropdown

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);
                    })
                }
            }
        })
}

标签: javascriptarraysfunctionapi

解决方案


以下代码将查找一个<select>(确切地说是其 id)元素,并在更改时输出 Direct Child 的 ID(<option>在本例中)。

$(document).ready(function(){
    $("#myDropdown").on("change", function(){
    the_id = $(this).children(":selected").attr("id")
    $("#output").html(the_id);
  });
});

我为你做了一个例子 > JS Fiddle

希望您可以使用 jQuery 代码。


推荐阅读