Javascript 变量是否已设置/定义?
我正在使用一个论坛软件,在那里你可以使用以下链接调出一个头像链接:{$mybb->user['avatar']} 如果没有设置化身,则不会返回任何内容。如果没有设置头像,我想显示一个图像 当前HTML的设置如下所示:Javascript 变量是否已设置/定义?,javascript,jquery,html,forum,mybb,Javascript,Jquery,Html,Forum,Mybb,我正在使用一个论坛软件,在那里你可以使用以下链接调出一个头像链接:{$mybb->user['avatar']} 如果没有设置化身,则不会返回任何内容。如果没有设置头像,我想显示一个图像 当前HTML的设置如下所示: <div id="avatar"><div style="background: url({$mybb->user['avatar']}) center center no-repeat;"></div></div>
<div id="avatar"><div style="background: url({$mybb->user['avatar']}) center center no-repeat;"></div></div>
如果化身URL为空,我希望将defaultavatar类添加到第一个div
我怎样才能做到这一点(让它工作)
非常感谢,
Jack Clarke在您的
条件下,如果
出现语法问题。单一相等是赋值
至少改变这个
if(typeof(myavatar) = null)
到
在
if
条件下,语法有问题。单一相等是赋值
至少改变这个
if(typeof(myavatar) = null)
到
根据
{$mybb->user['avatar']
返回的内容,可能足以执行以下操作:
if (myavatar) {
// do stuff
}
根据
{$mybb->user['avatar']
返回的内容,可能足以执行以下操作:
if (myavatar) {
// do stuff
}
在javascript中,
undefined
有两种含义。我不确定它们的确切名称,例如,我将它们称为undefined和REALLY undefined
常规的undefined
是当您试图从已声明但未初始化的内容中获取值时得到的。换句话说,解释器知道您正在谈论的内容,但该内容还没有价值
您可以使用一个简单的if语句来将变量转换成布尔值,以检查它是否是这种类型的<代码>未定义< /代码>。请注意,该转换也将空字符串“代码>”/代码>和“数字<代码> 0”/代码>到<代码> false < /代码>。如果需要考虑空字符串和数字<代码> 0 < /代码>,请使用<代码> MyDealReDV。变量===条件的未定义
if (myDeclaredVariable) {
// myDeclaredVariable is initialized with a "truthy" value
} else {
// myDeclaredVariable is either uninitialized or has a "falsey" value
}
真正的未定义的
是当您尝试访问一个随机变量而从未声明它时得到的。解释器不知道您在说什么,如果您尝试对它执行任何操作,它将抛出一个javascript异常。要处理这种情况,您需要使用
您可以看到一个相关的StackOverflow问题。在javascript中,
未定义的
有两种含义。我不确定它们的确切名称,例如,我将它们称为未定义的和真正未定义的
常规的undefined
是当您试图从已声明但未初始化的内容中获取值时得到的。换句话说,解释器知道您正在谈论的内容,但该内容还没有价值
您可以使用一个简单的if语句来将变量转换成布尔值,以检查它是否是这种类型的<代码>未定义< /代码>。请注意,该转换也将空字符串“代码>”/代码>和“数字<代码> 0”/代码>到<代码> false < /代码>。如果需要考虑空字符串和数字<代码> 0 < /代码>,请使用<代码> MyDealReDV。变量===条件的未定义
if (myDeclaredVariable) {
// myDeclaredVariable is initialized with a "truthy" value
} else {
// myDeclaredVariable is either uninitialized or has a "falsey" value
}
真正的未定义的
是当您尝试访问一个随机变量而从未声明它时得到的。解释器不知道您在说什么,如果您尝试对它执行任何操作,它将抛出一个javascript异常。要处理这种情况,您需要使用
你可以看到一个相关的StackOverflow问题。要检查typeof,你应该做
typeof(myavatar)==“undefined”
你可能还想在“{$mybb->user['avatar']}”周围加引号,我假设php变量正在输出一个字符串。要检查typeof,你应该做typeof(myavatar)==“undefined”
您可能还希望在“{$mybb->user['avatar']}”周围加引号,我假设php变量正在输出字符串。欢迎使用堆栈溢出。4空格缩进格式代码,语法高亮显示。或者高亮显示并单击{}
工具栏中的按钮我将其更改为您所说的内容,但似乎不起作用。这是源代码显示的:var myavatar=;if(typeof(myavatar)='undefined'){jQuery('#avatar').addClass('defaultavatar');}if('{$mybb->user['avatar']}}=='{jQuery avatar').addClass('defaultavatar'))你知道网站应用程序使用的是哪种php模板引擎吗?它与我以前使用的模板引擎Smarty非常相似,但绝对不是Smarty语法。你知道网站应用程序使用的是哪种php模板引擎吗?它与我以前使用的模板引擎Smarty非常相似,但绝对不是Smarty语法。你需要了解正确的模板引擎以获得正确的语法。或者,您可以尝试使用alert()检查myavatar的值。它应该检查php语法是否将正确的值传递给javascript变量。然后,您可以知道此javascriptWelcome to Stack Overflow中的php“null”值是什么类型。4空格缩进格式代码,语法突出显示。或者突出显示并单击{}
工具栏中的按钮我将其更改为您所说的内容,但似乎不起作用。这是源代码显示的:var myavatar=;if(typeof(myavatar)='undefined'){jQuery('#avatar').addClass('defaultavatar');}if('{$mybb->user['avatar']}}=='{jQuery avatar').addClass('defaultavatar'))你知道网站应用程序使用的是哪种php模板引擎吗?它与我以前使用的模板引擎Smarty非常相似,但绝对不是Smarty语法。你知道网站应用程序使用的是哪种php模板引擎吗?它与我以前使用的模板引擎Smarty非常相似,但绝对不是Smarty语法。你需要了解正确的模板引擎以获得正确的语法。或者,您可以尝试使用alert()检查myavatar的值。它应该检查php语法是否将正确的值传递给javascript变量。然后您可以知道此javascript中的php“null”值是什么类型