0

我正在使用一个论坛软件,您可以使用以下方法拉出头像链接:{$mybb->user['avatar']}

如果没有设置头像,则不返回任何内容。如果没有设置头像,我想显示图像。

目前 HTML 设置如下:

    <div id="avatar"><div style="background: url({$mybb->user['avatar']}) center center no-repeat;"></div></div>

外部 div 是空的并且在背景中。这个也是我要添加的一个类(.defaultavatar),以便显示默认头像。

内部 div 是显示头像的 div。如果没有上传/选择头像,则它将显示为空白。

这是我正在使用的 javascript:

    var myavatar = {$mybb->user['avatar']};

    if(typeof(myavatar) = null){ 
        jQuery('#avatar').addClass('defaultavatar');
    }

如果头像 URL 为空,我希望将类 defaultavatar 添加到第一个 div。

我该怎么做(让它工作)?

非常感谢,杰克克拉克

4

3 回答 3

2

在您的if情况下,语法有问题。单等号是赋值。

至少改变这个

if(typeof(myavatar) = null)   

if (typeof myavatar == 'undefined')
于 2012-04-11T01:54:50.710 回答
1

根据{$mybb->user['avatar']返回的内容,这样做可能就足够了:

if (myavatar) {
  // do stuff
}  
于 2012-04-11T02:26:34.690 回答
1

undefined在javascript中有两种含义。我不确定它们的确切名称是什么,在我的示例中,我将它们称为未定义且真正未定义。

undefined当您尝试从已声明但未初始化的内容中获取值时,您会得到常规。换句话说,解释器知道你在说什么,但那个东西还没有价值。

您可以使用简单的 if 语句将变量转换为布尔值,以检查它是否是这种类型的undefined. 请注意,此转换也会将空字符串''和数字0转换false为。如果您还需要考虑空字符串和数字0,请改用myDeclaredVariable === undefinedfor 条件。

if (myDeclaredVariable) {
    // myDeclaredVariable is initialized with a "truthy" value
} else {
    // myDeclaredVariable is either uninitialized or has a "falsey" value
}

undefined当您尝试访问一个随机变量而不声明它时,您会得到真正的结果。解释器不知道你在说什么,如果你试图用它做任何事情,它会抛出一个 javascript 异常。要处理这种情况,您需要使用typeofoperator

if (typeof myPossiblyDeclaredVariable !== 'undefined') {
    // myPossiblyDeclaredVariable has been declared
} else {
    // myPossiblyDeclaredVariable has not been declared yet
}

您可以在此处查看相关的 StackOverflow 问题。

于 2012-04-11T03:05:19.287 回答