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")});