$.each(json.data,function(i,fb){
//some code here...
if (msg.length > 150) {
msg = msg.substr(0,200)+"...";
}
//more code here...
});
我有一个问题。如果未定义msg,我收到错误,浏览器上没有显示任何内容。
可能的解决方案:为未定义msg的情况创建默认消息。
尝试:
if (msg = 'undefined') {
msg = 'some default message';
} else if (msg.length > 150) {
msg = msg.substr(0,200)+"...";
}
问题: 上面的尝试不起作用,因为我获取每个项目,相同的默认消息,而不是只有那些情况的默认消息是msg没有“设置”。
请求: 我是否可以帮助您编写正确的代码,以便在每个项目上,如果未定义msg,则显示默认值,如果不是,则显示它,显示它?
如果您缺少某些信息以便正确帮助我,请告诉我。我现在真的处于不利地位。 :■
非常感谢, MEM
答案 0 :(得分:3)
if (msg = 'undefined') {
- >
if (msg == undefined) {
两件事
==
来比较对象,使用=
来分配变量。即使是在javascript中。'undefined'
是一个文字'undefined'的字符串。 undefined
(不带引号)是javascript中的全局对象。或者可能不是全局对象,但无论它是什么,您都可以使用它来检查变量是否存在。答案 1 :(得分:3)
您必须在if语句中写==
而不是=
。此外,如果您正在尝试测试它是否未定义,则应使用typeof
,如下所示:
if (typeof msg == 'undefined')
使用typeof
比较它的想法实际上比将它与名为undefined
的对象相比更安全。原因是可以重新定义对象,但typeof
的结果永远不会改变。我不知道为什么有人会疯狂到这么做,但有可能写:
undefined = "hi there";
if (msg == undefined) // oh noes!
...
if (typeof msg == "undefined") // still works!
答案 2 :(得分:1)
if (msg == undefined) ...
诀窍是使用==(比较)与=(实际设置变量)。