为什么 'this' 未定义?
Why is 'this' undefined?
我有一个名为#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>
我有一个名为#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>