如果在每个循环内没有设置变量,如何显示内容?

时间:2011-01-04 15:54:51

标签: javascript jquery

$.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

3 个答案:

答案 0 :(得分:3)

if (msg = 'undefined') {

- >

if (msg == undefined) {

两件事

  1. 我们使用==来比较对象,使用=来分配变量。即使是在javascript中。
  2. '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) ...

诀窍是使用==(比较)与=(实际设置变量)。