许多css id到同一个jquery函数

时间:2013-07-22 10:18:04

标签: javascript jquery

$("#myInputId1").blur(function()

我该怎么做:

#myInputId1, #myInputId2, #myInputId3 -> same blur function

我相信这并不难,但尝试了许多事情并且不能!

8 个答案:

答案 0 :(得分:3)

将相同的css类应用于您想要的所有元素。然后使用以下代码

$('.className').blur(function(){
     ....
 });

答案 1 :(得分:2)

试试这个:

$("#myInputId1, #myInputId2, #myInputId3").blur(function(){
   //your code
});

或者其他方式,您可以检查以myInputId开头的所有ID:

$('input[id^=myInputId]').blur(function(){
   //your code
});

答案 2 :(得分:0)

简单 -

$('#myInputId1, #myInputId2, #myInputId3').blur(...)

http://api.jquery.com/multiple-selector/

答案 3 :(得分:0)

As Api suggested [jQuery( "selector1, selector2, selectorN" )]

$("#myInputId1, #myInputId2, #myInputId3").blur(function(){


}

http://api.jquery.com/multiple-selector/

答案 4 :(得分:0)

$('input[id^="myInputId"]').blur(function() {

});

答案 5 :(得分:0)

请尝试使用以下代码段。

$('input[id*="myInputId"]').blur(function()

答案 6 :(得分:0)

另一个选择是使用委托:

var relevantIDs = ['myInputID1','myInputID2','entirelyDifferentID'];
$('body').on('blur', function (e){
    var self = e.target;
    if (self.id && $.inArray(self.id, relevantIDs) > -1) {
        $(self).plugin();
    }
});

不幸的是,这明确要求元素id都是在数组中预定义的,尽管它允许那些id没有特定的模式(显然,属性的要求 - 选择者的开始 - 或结束 - 。

出于性能原因,最好选择所有目标元素中最接近的共享祖先元素,而不是文档body

正如其他地方所述,虽然有一些变通方法可以允许这种基于多个id的选择,但使用class等常用属性会更容易,更简单,更清晰。

参考文献:

答案 7 :(得分:0)

或者您可以在父级上绑定事件:

$(container).on('blur', 'input', function(){
    //do something
})