-1

此代码按我的需要工作:

$('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

4 回答 4

1

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

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

作为最后的选择,您可以使用.add

$('input.plus')
    .add($('input.minus'))
    // possibly add more elements here
    .mouseover(...);
于 2012-10-31T10:12:44.070 回答
1
$('input.plus, input.minus').mousedown(function () {       
    //..doing something
});
于 2012-10-31T10:13:56.913 回答
1

我建议:

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

...这样输入上的其他类就不会让你跳过它们。如果您使用属性 equals 选择器(您的input[class="plus"]),它只会匹配上唯一的类inputis "plus"。所以它会匹配<input class="plus">但不匹配<input class="plus foo">。通常,您希望在元素上具有其他类的灵活性。

或者,您可以这样做:

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

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

于 2012-10-31T10:14:17.797 回答
1

我会去绑定

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

$(".plus").bind("mousedown",$onInputMouseDown);
$(".minus").bind("mousedown",$onInputMouseDown);
于 2012-10-31T10:18:40.540 回答