如果条件运算符不工作,其他许多

时间:2018-03-20 13:22:06

标签: javascript

我希望它在数字为0时触发,当数字为1或2时,当数字为3或4时,当数字为5或6.当触发时它将改变高度某个元素。现在它总是返回70px。

    if(y == 0){
        $('slpage').style.height = '0px';
    }else if(y >= 1){
        $('slpage').style.height = '70px';
    }else if(y <=4){
        $('slpage').style.height = '140px';
    }else if(y >= 5){
        $('slpage').style.height = '210px';
    }

感谢

6 个答案:

答案 0 :(得分:2)

您应该考虑重新排序您的陈述。因此,它先检查最高值,然后检查最低值。

if(y == 0){
        $('slpage').style.height = '0px';
    }else if(y >= 5){
        $('slpage').style.height = '210px';
    }else if(y >=4){
        $('slpage').style.height = '140px';
    }else if(y >= 1){
        $('slpage').style.height = '120px';
    }

否则,您最终会在达到最高值之前触发最低值。

我猜你在第三个条件下为支票做了一个类型。校正。

  

如果整数依赖则切换。它意味着它应该是0,1,2,3,4,5,6。但我的情况是0.如果触发它。如果1-2。它会触发。如果3-4。它会触发。如果5-6。它会触发。

请勿使用开关限制自己,因为您必须一次覆盖2个案例。 Switch也拥有该设施。

switch (y) {
    case 0:
        $('slpage').style.height = '0px';
        break;
    case 1:
    case 2:
        $('slpage').style.height = '120px';
        break;
    case 3:
    case 4:
         $('slpage').style.height = '140px';
        break;
    case 5:
    case 6:
         $('slpage').style.height = '240px';
         break;
}

假设您使用Jquery,您的Jquery选择器是错误的。如果不是,请忽略#.忽略。

答案 1 :(得分:1)

您也可以使用switch case

switch (y) {
    case 0:
        $('slpage').style.height = '0px';
        break;
    case 1:
    case 2:
        $('slpage').style.height = '70px';
        break;

    case 3:
    case 4:
        $('slpage').style.height = '140px';
        break;
    case 5:
    case 6:
        $('slpage').style.height = '210px';
        break;
}

function sw(y) {
    switch (y) {
        case 0:
            console.log('0px');
            break;

        case 1:
        case 2:
            console.log('70px');
            break;

        case 3:
        case 4:
            console.log('140px');
            break;
        case 5:
        case 6:
            console.log('210px');
            break;

        default:
        console.log('no value mathed value');
    }
}

sw(0);

sw(1);

sw(2);

sw(3);

sw(4);

sw(5);

sw(6);

sw()

答案 2 :(得分:0)

切换声明可能吗?

'use strict';

// all the .button-counter from the DOM
const buttonsCounter = document.getElementsByClassName('button-counter');

// sets the content of the button to what value is currently set for data-counter
const buttonCounterSetText = button => button.innerHTML = `Click me (${button.dataset.count || 0})`;

// handles click event on the button
const buttonCounterClickHandler = ({currentTarget}) => {
  // increases the current value for data-count, or sets it to 0
  currentTarget.dataset.count = (parseInt(currentTarget.dataset.count) || 0) + 1;
  // see above
  buttonCounterSetText(event.currentTarget);
}; 

// initialize the buttons content and add listeners for click events
const buttonCounterInitialization = button => {
  buttonCounterSetText(button);
  button.addEventListener('click', buttonCounterClickHandler);
};

// initialize all buttons found with class .button-counter
[...buttonsCounter].forEach(buttonCounterInitialization);

如需了解更多信息,请查看:https://www.w3schools.com/js/js_switch.asp

答案 3 :(得分:0)

当你有y = {1,2,3,4,5,6}时,它满足条件<> = 1因此它在那时就打破了它。而是将逻辑从最高级改为最低级

   if(y >=5){
        $('slpage').style.height = '210px';
    }else if(y >= 3){
        $('slpage').style.height = '140px';
    }else if(y >=1){
        $('slpage').style.height = '70';
    }else {
        $('slpage').style.height = '0px';
    }

答案 4 :(得分:0)

干(不要重复自己)

var h = 0;
     if (y >= 5) h = 210;
else if (y >= 3) h = 140;
else if (y >= 1) h = 70;
$('slpage').style.height = h+'px';

假设

function $(id) { return document.getElementById(id); } 

如果您使用的是jQuery,则需要

$('.slpage').css({"height": h+'px'});

$('#slpage').css({"height": h+'px'});

取决于选择器

答案 5 :(得分:0)

最好使用switch

switch (y) {
    case 0:
        $('slpage').style.height = '0px';
        break;
    case 1:
    case 2:
        $('slpage').style.height = '70px';
        break;
    case 3:
    case 4:
        $('slpage').style.height = '140px';
        break;
    case 5:
    case 6:
        $('slpage').style.height = '210px';
        break;
    default:
        $('slpage').style.height = '0px';
 }