我正在使用论坛软件,您可以使用以下方式提取头像链接:{$ mybb-> user ['avatar']}
如果未设置头像,则不返回任何内容。如果没有设置头像,我想显示图像。
目前,HTML的设置如下:
<div id="avatar"><div style="background: url({$mybb->user['avatar']}) center center no-repeat;"></div></div>
外部div是空的并且在后台。这个也是我正在添加一个类(.defaultavatar),以便显示默认的头像。
内部div是显示头像的人。如果没有上传/选择头像,则它将显示为空白。
这是我正在使用的javascript:
var myavatar = {$mybb->user['avatar']};
if(typeof(myavatar) = null){
jQuery('#avatar').addClass('defaultavatar');
}
如果头像网址为空,我希望将类defaultavatar添加到第一个div。
我该怎么做(让它工作)?
非常感谢, 杰克克拉克
答案 0 :(得分:2)
在if
条件下,语法有问题。单一等于分配。
至少改变这个
if(typeof(myavatar) = null)
到
if (typeof myavatar == 'undefined')
答案 1 :(得分:1)
根据{$mybb->user['avatar']
返回的内容,执行以下操作可能就足够了:
if (myavatar) {
// do stuff
}
答案 2 :(得分:1)
javascript中undefined
有两种含义。我不确定他们的名字是什么,对于我的例子,我将它们称为未定义且真的未定义。
当您尝试从已声明但尚未初始化的内容中获取值时,会获得常规undefined
。换句话说,解释器知道你正在谈论的事情,但那件事还没有价值。
您可以使用简单的if语句将变量强制转换为布尔值,以检查它是否为undefined
这种类型。请注意,此演员表也会将空字符串''
和数字0
投放到false
。如果您还需要考虑空字符串和数字0
,请改用条件myDeclaredVariable === undefined
。
if (myDeclaredVariable) {
// myDeclaredVariable is initialized with a "truthy" value
} else {
// myDeclaredVariable is either uninitialized or has a "falsey" value
}
真正undefined
是您在尝试访问随机变量时所获得的,而不会声明它。解释器不知道你在说什么,如果你试图用它做任何事情,它将抛出一个javascript异常。要处理这种情况,您需要使用typeof
operator。
if (typeof myPossiblyDeclaredVariable !== 'undefined') {
// myPossiblyDeclaredVariable has been declared
} else {
// myPossiblyDeclaredVariable has not been declared yet
}
您可以看到相关的StackOverflow问题here。