如题,我想判断a是否是undefined,下面的代码却无效,请问哪里出错了?
$(document).ready(function(){
$('img').each(function() { var a = $(this).attr("alt");
if (a != undefined) {
$(this).before('') ;});
} else {
$(this).before('<span class="caption">' + a + "</span>") ;});
}
});
ringa_lee2017-04-10 16:24:34
直接
if (a) { //a!=undefind 有误
$(this).before('') ;});
} else {
$(this).before('<span class="caption">' + a + "</span>") ;});
}
});
PHPz2017-04-10 16:24:34
有2个问题需要注意
1是a的值,当你不确定a是多数时,你可以先在控制台打印出来看看是什么,或者直接
if(a) {
...
}
// 这里隐式调用了Boolean()方法
if(!a) {}
第二个问题,回调函数中的this指向,并不是指向调用它的那个对象,在回调函数中,this指向一般都在回调函数内部进行了规定,因此在回调函数中要慎用this
// each中,this代表当前被遍历的元素
$('img').each(function() {
});