Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 jQuery:循环使用20个不同的ID;选择";更改时执行函数的下拉列表_Javascript_Jquery_Loops_Html Select - Fatal编程技术网

Javascript jQuery:循环使用20个不同的ID;选择";更改时执行函数的下拉列表

Javascript jQuery:循环使用20个不同的ID;选择";更改时执行函数的下拉列表,javascript,jquery,loops,html-select,Javascript,Jquery,Loops,Html Select,我目前有20个不同的选择和选项HTML下拉列表,我需要相同的功能发生在所有这些“变化”时发生。我知道这样做的错误方法是重复该函数20次,必须有一种方法在ID选择器中循环并在发生更改时执行 下面的示例不是实际的示例,因此我这样做的原因并不重要(即,我需要获取选项中的值和文本,以便在选择更改时传递到我的最终函数),同样重要的是,我如何在不重复相同函数20次的情况下循环ID 在本例中,valLit和langLit是每个下拉列表都可以更改的变量,但一次只能更改一个,并传递给另一个函数 jQuery到循环

我目前有20个不同的选择和选项HTML下拉列表,我需要相同的功能发生在所有这些“变化”时发生。我知道这样做的错误方法是重复该函数20次,必须有一种方法在ID选择器中循环并在发生更改时执行

下面的示例不是实际的示例,因此我这样做的原因并不重要(即,我需要获取选项中的值和文本,以便在选择更改时传递到我的最终函数),同样重要的是,我如何在不重复相同函数20次的情况下循环ID

在本例中,valLit和langLit是每个下拉列表都可以更改的变量,但一次只能更改一个,并传递给另一个函数

jQuery到循环:

$('#mySelect0').change(function(event) {
valLit = $('#mySelect0').val();
langLit = $('#mySelect0 option:selected').text();

//Function to Execute on Change Event Goes Here (Same Function for All)

});

$('#mySelect1').change(function(event) {
valLit = $('#mySelect1').val();
langLit = $('#mySelect1 option:selected').text();

//Function to Execute on Change Event Goes Here (Same Function for All)

});

$('#mySelect2').change(function(event) {
valLit = $('#mySelect2').val();
langLit = $('#mySelect2 option:selected').text();

//Function to Execute on Change Event Goes Here (Same Function for All)

});
以此类推20次

以下是用于示例的HTML选择下拉列表:

HTML示例:

<select id="mySelect0">
<option value="">Choose Social Network</option>
<option value="https://www.facebook.com">Facebook</option>
<option value="https://www.twitter.com">Twitter</option>
<option value="https://www.instagram.com">Instagram</option>
</select>

<select id="mySelect1">
<option value="">Choose News Source</option>
<option value="https://www.cnn.com">CNN</option>
<option value="https://www.foxnews.com">Fox News</option>
<option value="https://www.abcnews.com">ABC News</option>
</select>

<select id="mySelect2">
<option value="">Choose Shopping Source</option>
<option value="https://www.amazon.com">Amazon</option>
<option value="https://www.walmart.com">Walmart</option>
<option value="https://www.bestbuy.com">Best Buy</option>
</select>

选择社交网络
脸谱网
啁啾
一款图片分享应用
选择新闻来源
有线电视新闻网
福克斯新闻
美国广播公司新闻
选择购物来源
亚马逊
沃尔玛
百思买
等20个选择器下拉列表

我在同一个页面上有20个下拉列表,所以我必须创建我的change event函数20次,它才能工作,在每个函数中声明每个select ID,复制许多相同的代码


想知道如何通过所有20个select ID为所有循环创建一个函数,您可以轻松地将其转换为循环。但是,如果我们假设只有这些元素的ID以
mySelect
开头,那么使用jQuery甚至不需要循环

$('select[id^="mySelect"]').change(function(event) {
    valLit = $(this).val();
    langLit = $(this).find('option:selected').text();

    //Function to Execute on Change Event Goes Here (Same Function for All)

});

(编辑:正如@ArunPJohny所说,使用一个类比使用一堆单独的ID更简洁/更容易。)

使用一个公共类而不是ID来选择元素谢谢!这是非常有用的,我需要了解更多关于jquery的信息。看起来,我没有意识到有这样的函数。没问题!需要明确的是,这并不依赖于jQuery中的任何特殊“函数”——只是如果您有一个表示多个元素的jQuery对象,您可以一次将事件侦听器附加到所有元素,并且在处理程序中,
这个
引用事件目标中的任何元素。