jQuery按名称选择属性仅选择第一个匹配的元素

时间:2015-03-04 04:04:00

标签: javascript jquery

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

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

2 个答案:

答案 0 :(得分:0)

试试这个:

$(document).on('change', 'select[name="merchant-category"]',function() { 
    console.log('called');
});

通过将.on(语法与选择器一起使用,您也可以捕获动态创建的元素。

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

http://jsfiddle.net/vysft3go/



$(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;
&#13;
&#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');
    });
相关问题