jQuery确定哪个元素称为函数

时间:2012-06-06 14:56:15

标签: jquery

假设我有

$('#routingNumber').removeClass(validationClass('#routingNumber'));

(其中validationClass()是一个正则表达式,返回一个确定验证的类。)

有没有办法跟踪validationClass()在$(“routingNumber”)上被调用而没有明确地传递参数#routingNmber

换句话说,无论如何,函数validationClass()可以知道它应该在#routingNumber上执行正则表达式

我想这样做是为了方便使用,在某些情况下,这是必要的。

注意:使用$(this)作为参数不起作用,因为删除类的click事件未绑定到#rountingNumber

3 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,您可以使用jQuery对象公开的(未记录的)selector属性。此属性将返回最初传递给$()的选择器:

var obj = $("#routingNumber");
obj.removeClass(validationClass(obj.selector));

答案 1 :(得分:0)

$('#routingNumber').removeClass(function() {
          return validationClass($(this));
});

$('.validateme').removeClass(function() {
          return validationClass($(this));
});

在这两种情况下,你的函数都应该得到正确的对象。

答案 2 :(得分:0)

你必须定义一个这样的新函数:

$.fn.removeValidationClass = function(){
    $(this).removeClass(validationClass($(this)));
    return $(this);
}

如果像这样调用,$(this)的值将是你示例中的#routingNumber div:

$('#routingNumber').removeValidationClass();