我有一个名为#question_title 的输入。我想对 Blur 事件运行 if 语句。当我尝试检查长度时,它返回为未定义。知道为什么“this”在这里不起作用吗?
JS
$('#question_title').on('blur', function(){
console.log('this.length = ' + this.length);
if ( this.length > 1 ) {
// do something fabulous
}
});
HTML
<div class="form-group question-title-wrap">
<label for="question_title">What is your question?</label>
<input type="text" class="form-control" id="question_title">
</div>
最佳答案
this
指的是元素本身,而不是它的值,因此会出现错误 undefined
,因为元素上没有这样的属性 (length
)输入元素。
如果您使用this.value.length
,您将获得该值及其长度。
$('#question_title').on('blur', function(){
console.log('this.value.length = ' + this.value.length);
if ( this.value.length > 1 ) {
// do something fabulous
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group question-title-wrap">
<label for="question_title">What is your question?</label>
<input type="text" class="form-control" id="question_title">
</div>
关于javascript - 为什么 'this' 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988598/