以下事件仅在更改名称为商家类别的第一个下拉列表时触发(选择了不同的选项)。对于任何具有此名称的select元素,我都需要它。我认为这将是下面的选择器的行为。我做错了什么?
$('select[name=merchant-category]').change(function(){
console.log('called');
});
答案 0 :(得分:0)
试试这个:
$(document).on('change', 'select[name="merchant-category"]',function() {
console.log('called');
});
通过将.on(
语法与选择器一起使用,您也可以捕获动态创建的元素。
无论$('select[name="merchant-category"]')
应该返回多个元素,而不仅仅是第一个元素。如果不是,请仔细检查代码中的拼写错误。
$(function() {
$(document).on('change', 'select[name="merchant-category"]', function() {
var notification = $('<p>').text($(this).attr('id') + ' changed!');
$('#updates').append(notification);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<form>
<select name="merchant-category" id="select1">
<option>1</option>
<option>2</option>
</select>
<select name="merchant-category" id="select2">
<option>1</option>
<option>2</option>
</select>
</form>
<div id="updates"></div>
&#13;
答案 1 :(得分:-2)
使用each()
在jQuery中选择多个元素。
<强> Attempt1:强>
$.each('select[name=merchant-category]').change(function(){
console.log('called');
});
<强> ATTEMPT2:强>
$('select[name=merchant-category]').each(change(function(){
console.log('called');
});