Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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-当存在多个_Javascript_Jquery - Fatal编程技术网

Javascript jQuery-当存在多个

Javascript jQuery-当存在多个,javascript,jquery,Javascript,Jquery,我根据用户输入动态地在页面上插入许多选择。选择列表是相同的,并且具有相似的名称 当用户选择一个选项时,我想获取该值。(最后,我试图实现的是从所有其他列表中禁用所选值,但如果值发生更改,则重新启用它。但每次只执行一步) 我假设我需要使用$(this),但我显然不知道如何从第二个、第三个列表中获取值,等等 HTML应该是这样的: <select name="category[first]"> <option value="1">1</option>

我根据用户输入动态地在页面上插入许多选择。选择列表是相同的,并且具有相似的名称

当用户选择一个选项时,我想获取该值。(最后,我试图实现的是从所有其他列表中禁用所选值,但如果值发生更改,则重新启用它。但每次只执行一步)

我假设我需要使用
$(this)
,但我显然不知道如何从第二个、第三个列表中获取值,等等

HTML应该是这样的:

<select name="category[first]">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

<select name="category[second]">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

** Many more lists with the same naming convention
$('body').on('change', $('select[name^="category"]', function(){
    alert( $(this).find('option:selected').val() );
});
但这只给出了第一次选择的值,而不是任何后续选择的值。我的理解是,我必须使用
$('body')
$('document')
,因为它们是动态创建的元素

非常感谢您的帮助。

删除选择器前面的
$(
)。选择器必须是字符串,而不是
jQuery
对象
$('body')。在('change','select[name^=“category”]',function()上{
log($(this.find('option:selected').val());
});

1.
2.
3.
1.
2.
3.

我会这样做:


如果所有答案都不起作用,或者您仍然面临麻烦,请告诉我,这样我可以帮助我了解。我对jQuery/JS的缺乏经验在这里非常突出。谢谢您指出这一点!@ahnkee,很高兴它起到了作用!:)谢谢您帮助我迈出下一步。由于另一个答案帮助我解决了我的选择器问题,我选择将其作为我选择的答案。但是谢谢你的帮助
 $('body').on('change', 'select', function () {
     var selected_value = $(this).val();
     $('select option').each(function(){
         if(this.value == selected_value){
             $(this).prop('disabled', true);
         } else {
             $(this).prop('disabled', false);
         }
     });
 });