在jquery中切换大小写

我正在写正确的开关盒吗?

var cnt = $("#div1 p").length; alert(cnt); switch (cnt) { case (cnt >= 10 && cnt <= 20): alert('10'); break; case (cnt >= 21 && cnt <= 30): alert('21'); break; case (cnt >= 31 && cnt <= 40): alert('31'); break; default: alert('>41'); } 

出于某种原因,条件匹配时不会发生警报!

您不应该在这种情况下使用switch 。 这是正确的方法:

 var cnt = $("#div1 p").length; alert(cnt); if (cnt >= 10 && cnt <= 20) { alert('10'); } else if (cnt >= 21 && cnt <= 30) { alert('21'); } else if (cnt >= 31 && cnt <= 40) { alert('31'); } else { alert('>41'); } 

交换机的工作原理是比较switch()和每一种case

 switch (cnt) { case 1: .... case 2: .... case 3: .... } 

工作如下:

 if (cnt == 1) ... if (cnt == 2) ... if (cnt == 3) ... 

因此,在case语句中不能有任何逻辑。

 switch (cnt) { case (cnt >= 10 && cnt <= 20): ... } 

作品像

 if (cnt == (cnt >= 10 && cnt <= 20)) ... 

这只是无稽之谈。 🙂

使用if () { } else if () { } else { }

这应该与此工作:

 var cnt = $("#div1 p").length; switch (true) { case (cnt >= 10 && cnt <= 20): alert('10'); break; case (cnt >= 21 && cnt <= 30): alert('21'); break; case (cnt >= 31 && cnt <= 40): break; default: alert('>41'); } 

我在试图使用微调时遇到的一些问题是, 如果不使用大量的if语句,就可以在脚本中保持灵活性。

由于这是一个简单的解决scheme,而不是遍历数组来检查存在的类的单个实例,所以它使脚本更清晰。 任何build议进一步清理代码是受欢迎的。

 $('.next').click(function(){ var imageToSlide = $('#imageSprite'); // Get id of image switch(true) { case (imageToSlide.hasClass('pos1')): imageToSlide.removeClass('pos1').addClass('pos2'); break; case (imageToSlide.hasClass('pos2')): imageToSlide.removeClass('pos2').addClass('pos3'); break; case (imageToSlide.hasClass('pos3')): imageToSlide.removeClass('pos3').addClass('pos4'); break; case (imageToSlide.hasClass('pos4')): imageToSlide.removeClass('pos4').addClass('pos1'); } }); ` 

你在做什么是寻找(0)或(1)结果。

(cnt> = 10 && cnt <= 20)返回true或者false。

– 编辑 – 你不能用布尔(逻辑)展开的情况。 cnt> = 10的语句返回false,否则返回true。 因此,我们会遇到(1)或者情况(0),永远不会匹配长度。 – 编辑 –

 function date_conversion(start_date){ var formattedDate = new Date(start_date); var d = formattedDate.getDate(); var m = formattedDate.getMonth(); var month; m += 1; // JavaScript months are 0-11 switch (m) { case 1: { month="Jan"; break; } case 2: { month="Feb"; break; } case 3: { month="Mar"; break; } case 4: { month="Apr"; break; } case 5: { month="May"; break; } case 6: { month="Jun"; break; } case 7: { month="Jul"; break; } case 8: { month="Aug"; break; } case 9: { month="Sep"; break; } case 10: { month="Oct"; break; } case 11: { month="Nov"; break; } case 12: { month="Dec"; break; } } var y = formattedDate.getFullYear(); var now_date=d + "-" + month + "-" + y; return now_date; } 

开关情况是每个帮助充分,而不是如果else语句:

  switch ($("[id*=btnSave]").val()) { case 'Search': saveFlight(); break; case 'Update': break; case 'Delete': break; default: break; }