Switch case with conditions

前端 未结 8 1677
情深已故
情深已故 2020-12-01 02:36

Am I writing the correct switch case?

var cnt = $(\"#div1 p\").length;
                alert(cnt);
                switch (cnt) {
                    case (c         


        
相关标签:
8条回答
  • 2020-12-01 03:31

    A switch works by comparing what is in switch() to every case.

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

    works like:

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

    Therefore, you can't have any logic in the case statements.

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

    works like

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

    and that's just nonsense. :)

    Use if () { } else if () { } else { } instead.

    0 讨论(0)
  • 2020-12-01 03:35

    Something I came upon while trying to work a spinner was to allow for flexibility within the script without the use of a ton of if statements.

    Since this is a simpler solution than iterating through an array to check for a single instance of a class present it keeps the script cleaner. Any suggestions for cleaning the code further are welcome.

    $('.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 讨论(0)
提交回复
热议问题