在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; }