JavaScript切换比较不起作用

时间:2017-12-28 06:03:55

标签: javascript jquery

jQuery的:

var Page = parseInt($(".active_pagination").data("number"));
  	var First = parseInt($(".pagination_number:first").data("number"));
  	var Last = parseInt($(".pagination_number:last").data("number"));
  	alert("Page: "+Page+" First: "+First+" Last: "+Last);
  	switch(Page){
  		case (Page === First):
  		    alert("First");
  		    $(".prev").closest('li').hide();
  		    $(".next").closest('li').show();
  		break;
  		case (Page === Last):
  		    alert("Last");
  		    $(".prev").closest('li').show();
  		    $(".next").closest('li').hide();
  		break;
  		default:
  		    alert("Default");
  		    $(".prev").closest('li').show();
  		    $(".next").closest('li').show();
  	}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<li><a href="#" class="pagination_list pagination_number active_pagination" data-number="1">1</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="2">2</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="3">3</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="4">4</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="5">5</a></li>

我将所有变量解析为Int然后执行比较,但它仍然不起作用。我不知道它是如何连续执行默认条件的。

3 个答案:

答案 0 :(得分:2)

替换开关
switch(Page){
        case First:
            alert("First");
            $(".prev").closest('li').hide();
            $(".next").closest('li').show();
            break;
        case Last:
            alert("Last");
            $(".prev").closest('li').show();
            $(".next").closest('li').hide();
            break;
        default:
            alert("Default");
            $(".prev").closest('li').show();
            $(".next").closest('li').show();
    }

switch隐式检查与指定的情况是否相等,您自己不进行比较。

答案 1 :(得分:2)

在switch case block中,您实际上需要根据switch参数中使用的变量值设置条件语句。

var Page = parseInt($(".active_pagination").data("number"));
  	var First = parseInt($(".pagination_number:first").data("number"));
  	var Last = parseInt($(".pagination_number:last").data("number"));
  	alert("Page: "+Page+" First: "+First+" Last: "+Last);
  	switch(Page){
  		case (First):
  		    alert("First");
  		    $(".prev").closest('li').hide();
  		    $(".next").closest('li').show();
  		break;
  		case (Last):
  		    alert("Last");
  		    $(".prev").closest('li').show();
  		    $(".next").closest('li').hide();
  		break;
  		default:
  		    alert("Default");
  		    $(".prev").closest('li').show();
  		    $(".next").closest('li').show();
  	}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<li><a href="#" class="pagination_list pagination_number active_pagination" data-number="1">1</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="2">2</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="3">3</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="4">4</a></li>
<li><a href="#" class="pagination_list pagination_number" data-number="5">5</a></li>

答案 2 :(得分:1)

方法1

switch (Page) {

    case First:

        alert("First");

        break;

    case Last:

        alert("Last");

        break;

    default:

        alert("Default");

}

方法2

    if(Page === First){

        alert("First");

    }

    else if (Page === Last){

        alert("Last");

   }else {

        alert("Default");

   }