2012-05-30 46 views
4

我有一堆文本字段,我想在onkeyup完成時運行一個函數。他們都將運行相同的功能,所以是有辦法,我可以做的是在一個行,而不是這樣的:我可以在多個元素上使用jquery for onKeyUp嗎?

$('#element1').keyup(function(){getData()}); 
$('#element2').keyup(function(){getData()}); 

另外,如果我能做到這一點,我怎麼能扔和的onchange在那裏下拉?謝謝!

回答

9

你可以用逗號分隔元素:

$("#element1, #element2").keyup(getData); 

但是用類,而不是列出所有ID如何:

<!-- HTML --> 
<input id="element1" class="element" /> 
<input id="element2" class="element" /> 

// JavaScript 
$(".element").keyup(getData); 
+0

這是有道理的。我將如何在下拉框中添加onchange? – Damien

+1

是的,使用類是一個很好的解決方案。那麼:'$(「:text.element」).keyup(getData)'和'$(「select.element」).change(getData)'? – VisioN

1

它可能使用$()內的多個選擇器。

$('#element1, #element2').keyup(function(){ 
    getData() 
}); 

或短

$('#element1, #element2').keyup(getData); 

如果你想.change()事件綁定到你那麼多select箱給所有select一類常見

<select class="myselect"></select> 
<select class="myselect"></select> 
<select class="myselect"></select> 

$('.myselect').on('change', function() { 

}); 
+2

第二個示例在功能上與f不同首先你的意思是.keyup(getData)? –

+0

@RuneFS謝謝,錯誤 – thecodeparadox

+0

困惑......所以我可以做 '$('#element1,#element2')。keyup(getData); 還是不? – Damien

2

要麼你追加他們在您的選擇:

$('#element1, #element2').keyup(function(){ // ... 

,或者你使用add()在這種情況下,可能會更有效,因爲jQuery可以使用僅用於ID的選擇器的快捷方式使用getElementById

$('#element1').add('#element2').keyup(function(){ // ... 
相關問題