Javascript jQuery:使用多个下拉列表时获取(1)所选值

Javascript jQuery:使用多个下拉列表时获取(1)所选值,javascript,jquery,Javascript,Jquery,我试图从每个选择下拉列表1选项中获取所选值,分别单击它。当前,当我从第一个下拉列表中更改所选值时,它会显示正确的值。但是,当我单击另一个下拉菜单并更改值时,它会一直显示第一个下拉菜单中的值。下拉列表是在MYSQL数据库的表foreach循环中动态创建的。因此,它们具有相同的Id dropdownId,这可能是一个问题。两个下拉列表都会触发警报,但所选值只有在有效更改第一个下拉列表时才正确。当从另一个下拉列表中选择某个内容时,它将始终显示第一个下拉列表中最后选定的值。身份证也一样 $(docume

我试图从每个选择下拉列表1选项中获取所选值,分别单击它。当前,当我从第一个下拉列表中更改所选值时,它会显示正确的值。但是,当我单击另一个下拉菜单并更改值时,它会一直显示第一个下拉菜单中的值。下拉列表是在MYSQL数据库的表foreach循环中动态创建的。因此,它们具有相同的Id dropdownId,这可能是一个问题。两个下拉列表都会触发警报,但所选值只有在有效更改第一个下拉列表时才正确。当从另一个下拉列表中选择某个内容时,它将始终显示第一个下拉列表中最后选定的值。身份证也一样

$(document).on('change',$('#dropdownId'),function(){
        let itemVal = $('#dropdownId').find(':selected').val();
        var itemId = $('#dropdownId').find(':selected').attr('id');
        alert(itemVal);
        $.ajax({
            //..
            success: function(html){
                }
        });
    });
因此,它们具有相同的Id dropdownId,可能是 问题-是的,这是一个问题

Id应始终是唯一的。您应该切换到为事件委派使用公共类名:

使用像myDropDown这样的通用类,并将其应用于MYSQL生成的每个下拉列表:

HTML:


请包括您的html和'change',$'dropdownId',函数{应该是'change','dropdownId',函数{@Robin某物告诉我,如果它们都具有相同的id值,那么它实际上并没有得到解决,但好吧。你是对的。它工作不正常。我必须再看一次,只是检查得太快了。谢谢!这一定是问题所在!所以主要的问题实际上是我的jQuery函数中的拼写错误,但我也相应地将下拉列表更改为handl如您所述,将事件与自己的类合并,因此ID是唯一的。再次感谢,祝您一切顺利。
<select class="myDropDown"></select>
$(document).on('change','.myDropDown',function(){
        //$(this) refers to the drop down which triggered the event
        let itemVal = $(this).find(':selected').val();
        var itemId = $(this).find(':selected').attr('id');
        alert(itemVal);
        //AJAX Part