如何选择与类列表匹配的任何输入?

时间:2012-10-31 10:10:14

标签: jquery jquery-selectors

此代码可以根据需要运行:

$('input[class="plus"], input[class="minus"]').mousedown(function () {       
        //..doing something
    });

我想要的是:

$('input[class="plus minus"]').mousedown(function () {            
        //..doing something
    });

或者喜欢:

$('input[class="plus"][class="minus"]').mousedown(function () {            
        //..doing something
    });

选择器应选择具有plus类或minus的任何输入。

必须有其他语法,但我不知道。

4 个答案:

答案 0 :(得分:1)

正确的语法是使用逗号分隔选择器,就像你指出的那样,但选择器应该这样写:

$('input.plus, input.minus').mousedown(function () {       
    //..doing something
});

作为最终替代方案,您可以使用.add

$('input.plus')
    .add($('input.minus'))
    // possibly add more elements here
    .mouseover(...);

答案 1 :(得分:1)

$('input.plus, input.minus').mousedown(function () {       
    //..doing something
});

答案 2 :(得分:1)

我建议:

$('input.plus, input.minus').mousedown(function () {            
    //..doing something
});

...所以输入上的其他类不会让你跳过它们。如果您使用属性等于选择器(您的input[class="plus"]),则只有在input上的 类为"plus"时才会匹配。因此它匹配<input class="plus">但不匹配<input class="plus foo">。通常,您希望在元素上具有其他类的灵活性。

或者,您可以执行此操作:

$('input').filter('.plus, .minus').mousedown(...);

...但效率可能会低一些:首先它会让jQuery查找所有 input元素,然后分别将结果过滤到那些带有那些类。所以我不推荐它。

答案 3 :(得分:1)

我会去绑定

$onInputMouseDown = function() {
    ....
}

$(".plus").bind("mousedown",$onInputMouseDown);
$(".minus").bind("mousedown",$onInputMouseDown);