2012-10-31 28 views
-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

必須有一些其他的語法,但我不知道一個。

+1

Ÿ不能u使用$(」加減。 ')鼠標 –

+0

...或$(' input.plus,input.minus') –

+0

@ArunKillu:不,那會尋找具有**標記**'minus'的元素,它們是具有'plus'類的元素的後代。 –

回答

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元素,然後分別進行過濾結果只是那些類的結果。所以我不會推薦它。

1

正確的語法使用逗號像你指出來了的選擇符,但選擇應該這樣寫:

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

作爲最後一種選擇,你可以使用.add

$('input.plus') 
    .add($('input.minus')) 
    // possibly add more elements here 
    .mouseover(...); 
1
$('input.plus, input.minus').mousedown(function() {  
    //..doing something 
}); 
+0

+1最後我使用這個變種.. – horgh

1

我會去結合

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

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

+1因爲我只開始學習jQuery,我不知道對這個。我肯定會嘗試一天 – horgh

+0

好的部分是,你可以更好地跟蹤你的功能。如果出現問題,您不需要在組件y上搜索事件x,而是在代碼中尋找函數。我非常喜歡它 –

相關問題