Home  >  Q&A  >  body text

javascript - 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>") ;}); 
            }
});
PHP中文网PHP中文网2748 days ago329

reply all(4)I'll reply

  • ringa_lee

    ringa_lee2017-04-10 16:24:34

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

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 16:24:34

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

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 16:24:34

    直接

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

    reply
    0
  • PHPz

    PHPz2017-04-10 16:24:34

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

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

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

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

    reply
    0
  • Cancelreply