我可以在多个元素上使用jquery for KeyUp吗?

时间:2012-05-30 18:12:18

标签: jquery

我有一堆文本字段,我想在onkeyup完成后运行一个函数。他们都会运行相同的功能,所以有一种方法我可以在一行而不是这样做:

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

另外,如果我能做到这一点,我怎么能在那里投掷和改变下拉?谢谢大家!!

3 个答案:

答案 0 :(得分:15)

您可以使用逗号分隔元素:

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

但是如何使用类而不是列出所有ID:

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

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

答案 1 :(得分:4)

您可以将它们附加到选择器中:

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

或者您使用add(),在这种情况下可能更有效率,因为jQuery可以使用getElementById的仅ID选择器的快捷方式:

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

答案 2 :(得分: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() {

});