在同一段脚本中使用多个 div id

Using multiple div id's with same piece of script

我在一个页面上有几个 select 框,基本上只要这些框中的任何一个发生 onchange 事件,我就想使用相同的代码,而不是为每个 [=22] 创建一个单独的脚本=] 盒子的 id。原因是我最终可能会在一个页面上有几十个这样的 select 框,所有重复的代码只会变得混乱。

<select name="drop_list_menu_1" id="drop_list_menu_1">
<option value="letter:a">A</option>
<option value="letter:b">B</option>
<option value="letter:c">C</option>
</select>

<select name="drop_list_menu_2" id="drop_list_menu_2">
<option value="letter:a">A</option>
<option value="letter:b">B</option>
<option value="letter:c">C</option>
</select>

<select name="drop_list_menu_3" id="drop_list_menu_3">
<option value="letter:a">A</option>
<option value="letter:b">B</option>
<option value="letter:c">C</option>
</select>

我处理 onchange 事件的代码:

<script type="text/javascript">

        $(document).ready(function () {

            // if user chooses an option from the select box...
            $("#drop_list_menu_1").change(function () {

                //doin some stuff
            }); 

</script>

那么,我怎样才能得到这个:

$("#drop_list_menu_1").change(function () {

                    //doin some stuff
                });

捕捉正在使用的页面上的任何 select 框?包含正则表达式的东西?

给元素一个commonclass(id属性可以保留)然后使用委托:

$(document).on("change", "your-select-class", function() {
  var changedElement = this;
  // ...
});

您只需要一次调用来设置事件处理程序,它会根据您在页面上的需要复制多少份。

将相同的 class 分配给每个 Select 并如下调用它。

$(".ClassName").change(function (e) {
      var SelectId = e.target.id
});

就这么简单

$("select").change(function () {

    alert('a');
}); 

您可以使用 jQuery's attribute starts-with selector 到 select 所有名称以“drop_list_menu_”开头的下拉菜单:

$("select[name^='drop_list_menu_']").change(function(){
    //doin some stuff
});