Javascript 如何获得;这";在jQuery事件绑定中

Javascript 如何获得;这";在jQuery事件绑定中,javascript,jquery,this,jquery-events,Javascript,Jquery,This,Jquery Events,我有一个在keyup或change上调用的函数,但我正在努力获取此的值 代码 var myNS = myNS || {}; myNS.validate = { dobChange: function(elem){ console.log($(this).val().length); // trying to check length of "this" } } $('.dob1-day, .dob1-month, .dob1-year').on('keyup

我有一个在
keyup
change
上调用的函数,但我正在努力获取
的值

代码

var myNS = myNS || {};

myNS.validate = {
    dobChange: function(elem){
        console.log($(this).val().length); // trying to check length of "this"
    }
}

$('.dob1-day, .dob1-month, .dob1-year').on('keyup change', myNS.validate.dobChange('foo'));
控制台错误:

未捕获类型错误:无法读取未定义的属性“toLowerCase”

如何获取此的值


您应该从传递给处理程序的事件中提取DOM元素:

//getting the element
myNS.validate = {
    dobChange: function(e){
        console.log($(e.target).val().length); // trying to check length of "this"
    }
}
//calling handler
$('.dob1-day, .dob1-month, .dob1-year').on('keyup change', myNS.validate.dobChange)
var myNS=myNS | |{};
myNS.validate={
更改:函数($element){
log($element.val());
}
}
$(函数(){
$(“.content”).on('keyup change','.dob1 day',function(){
myNS.validate.dobChange($(this));
});
});
您可以使用
call()
和匿名函数设置相关上下文并传递额外参数:

$('.dob1-day').on('keyup change', function(){myNS.validate.dobChange.call(this, "foo")});

当您将
('foo')
放在函数后面时,您正在调用函数。除非你调用的函数本身返回一个函数,否则你就做错了。如果你能帮上忙,不要匿名-你说的绑定是什么意思?@Havihavi-是的is@Havihavi不包括jq。错误是因为上下文设置在
窗口上,该窗口没有任何值属性。有一些文本来描述您的答案,而不是一行代码,这有点帮助。不能这样做,更新了问题,遗漏了变量到functionBoom!!这对我来说是新的-太棒了!非常感谢
var myNS = myNS || {};

myNS.validate = {
    dobChange: function($element){
        console.log($element.val());
  }
}

$(function () {
    $(".content").on('keyup change','.dob1-day', function(){
                        myNS.validate.dobChange($(this));
                    });
});



<div class="content">
    <input type="text" class="dob1-day">
</div>
$('.dob1-day').on('keyup change', function(){myNS.validate.dobChange.call(this, "foo")});