2009-09-10 58 views
1

是否可以在Javascript中放置多个IF语句?如果是这样,我在下面的陈述中遇到了相当多的麻烦。我想知道如果你可以把另一个IF语句放在之间if(data =='valid')AND else?我想添加另一个if data =='concept')两者之间。处理多个Javascript IF语句

if (data == 'valid') { 
    $("#file").slideUp(function() { 
     $("#file").before('<div class="approvedMessage">WIN WIN WIN!</div>'); 
     setTimeout(ApprovedProof, 5000); 
    }); 

    function ApprovedProof() { 
     $("#file").slideDown(); 
     $('.approvedMessage').fadeOut(); 
    } 

} 
else { 

    $("#file").slideUp(function() { 
     $("#file").before('<div class="deniedMessage">NO NO NO!</div>'); 
     setTimeout(DeniedProof, 5000); 
    }); 

    function DeniedProof() { 
     $("#file").slideDown(); 
     $('.deniedMessage').fadeOut(); 
    } 
} 
+1

你是一个'其他if'条款? – LiraNuna 2009-09-10 04:37:30

+0

...我没有想过这是为什么?谢谢! – Homework 2009-09-10 04:39:11

+0

在不相干的笔记上,您应该考虑在计时器中使用匿名函数。 – Kevin 2009-09-10 04:41:19

回答

5

这是你在找什么?

if(data == 'valid') { 
    // block 1 
} else if (data == 'concept') { 
    // block 2 
} else { 
    // block 3 
} 
+0

我太累了想不起来。我把elseif,而不是如果。谢谢! – Homework 2009-09-10 04:39:41

+0

而它正在使elseif函数代替预设函数“else if”。 :( – Homework 2009-09-10 04:40:16

+3

@Joey:现在不要看,但你的VB显示 – 2009-09-10 04:52:44

3

你可以使用else if

if (data == "valid") { 
    // stuff here 
} else if (data == "concept") { 
    // more stuff 
} else { 
    // other stuff 
} 
4

如果您打算为数据变量来保存多个不同的值,你会发现switch语句更适合你的需求:

switch(data) 
{ 
    case "valid": 
    //stuff 
    break; 
    case "concept": 
    //stuff 
    break; 
    case "this": case "that": 
    //more stuff 
    break; 
    default: 
    break; 
} 

请注意,在每种情况之后的break语句,可以针对每个条件使用多个case语句,并且存在一个catch-call默认情况,如果没有其他匹配的话就会触发。 switch语句只不过是If语句的更简洁的版本。

+0

我要尝试这种方法,只是看它是如何运行的 – Homework 2009-09-10 04:51:26

2

无关的问题,但乔伊要求澄清使用匿名函数与他的计时器:

if (data == 'valid') { 
    $("#file").slideUp(function() { 
     $("#file").before('<div class="approvedMessage">WIN WIN WIN!</div>'); 
     setTimeout(function() { 
      $("#file").slideDown(); 
      $('.approvedMessage').fadeOut(); 
     }, 5000); 
    }); 
} 
+0

谢谢。添加更多函数的好处是? – Homework 2009-09-10 04:49:27

+1

这不是增加更多的函数,而是声明函数,它被用作'匿名函数',aka lambda或closure。没有必要单独声明它并给它一个名称,因为你只有在那个地方才能使用它。另外,闭包在变量范围方面有一些独特而强大的属性,这在先进的JavaScript中非常重要,但这是另一个问题! – JAL 2009-09-10 04:54:00

+0

明显可以理解。 – Homework 2009-09-10 04:58:28