首页 > js中if使用问题

js中if使用问题

如题,我想判断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>") ;}); 
            }
});

有2个问题需要注意
1是a的值,当你不确定a是多数时,你可以先在控制台打印出来看看是什么,或者直接

if(a) {
    ...
}

// 这里隐式调用了Boolean()方法
if(!a) {}

第二个问题,回调函数中的this指向,并不是指向调用它的那个对象,在回调函数中,this指向一般都在回调函数内部进行了规定,因此在回调函数中要慎用this

// each中,this代表当前被遍历的元素
$('img').each(function() {
});

$(this).before('') ;});
$(this) 指的是全局对象


直接

if (a) { //a!=undefind 有误
    $(this).before('') ;}); 
    } else {
$(this).before('<span class="caption">' + a + "</span>") ;}); 
            }
});

图像的alt属性在没有显式赋值的情况下则该属性为null,不是undifined

【热门文章】
【热门文章】