Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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,以下事件仅在名称为merchant category(商户类别)的第一个下拉列表更改(选择不同选项)时触发。我需要它发生在任何具有此名称的select元素上。我认为这将是下面选择器的行为。我做错了什么 $('select[name=merchant-category]').change(function(){ console.log('called'); }); 使用each()在jQuery中选择多个元素 尝试1: $.each('select[name=merchant-cate

以下事件仅在名称为merchant category(商户类别)的第一个下拉列表更改(选择不同选项)时触发。我需要它发生在任何具有此名称的select元素上。我认为这将是下面选择器的行为。我做错了什么

$('select[name=merchant-category]').change(function(){ 
    console.log('called');
});
使用
each()
在jQuery中选择多个元素

尝试1:

$.each('select[name=merchant-category]').change(function(){ 
        console.log('called');
    });
$('select[name=merchant-category]').each(change(function(){ 
        console.log('called');
    });
尝试2:

$.each('select[name=merchant-category]').change(function(){ 
        console.log('called');
    });
$('select[name=merchant-category]').each(change(function(){ 
        console.log('called');
    });
试试这个:

$(document).on('change', 'select[name="merchant-category"]',function() { 
    console.log('called');
});
通过使用带有选择器的
.on(
语法,您还可以捕获动态创建的元素

无论如何,
$('select[name=“merchant category”]”)
应返回多个元素,而不仅仅是第一个元素。如果不是,请仔细检查代码中的拼写错误

$(函数(){
$(文档)。在('change',选择[name=“merchant category”]”,函数()上{
变量通知=$(“”).text($(this.attr('id')+'changed!');
$(“#更新”)。追加(通知);
});
});

1.
2.
1.
2.

是否动态添加其他元素?它将为代码运行时存在的所有元素激发。如果在代码运行后添加元素,则需要使用事件删除功能。是否可以使用.clone()动态添加其他元素。是的,使用.clone()动态添加其他元素这不会有什么不同,jQuery已经在内部使用
each
将事件处理程序添加到集合中。如果操作代码不起作用,这将不起作用。请尝试让您知道。谢谢,成功了,您能告诉我为什么(我在动态添加其他select元素)?我在$(文档)中使用了上一段代码.ready()…那么,它没有将事件侦听器绑定到dom元素吗?如果我将它放在$(document).ready()之外,它会工作吗?
$(document).ready(…
只在DOM准备就绪时运行代码。但是,如果在页面已加载后添加新元素,则选择器将无法捕获新的传入元素。当您使用我解释的方法时,您的意思是“聆听
文档
,查找与
选择[name=“merchant category”]
匹配的任何元素。”即使是后来添加的。