执行For循环时跳过数字

时间:2017-03-27 15:59:43

标签: javascript jquery for-loop

我有80个div,其唯一ID从0到80,例如。 grid0,grid1,grid2等。

我想使用for循环遍历所有这些并隐藏它们,但我想跳过一些网格。我该怎么办?

这是一个不正确的例子:

for ( var i = 0; i <= 80; i++) (skip numbers 51,60,69,78) {
  $("grid" + i).hide();
}

6 个答案:

答案 0 :(得分:2)

您可以使用Array#indexOf

进行检查
for (var i = 0; i <= 80; i++) {
    if ([51, 60, 69, 78].indexOf(i) === -1) {
        $("grid" + i).hide();
    }
}

或使用ES6和Array#includes

for (var i = 0; i <= 80; i++) {
    if (![51, 60, 69, 78].includes(i)) {
        $("grid" + i).hide();
    }
}

BTW,你的字符串构建方法不起作用,你需要在字符串之外加上加号和索引。

$("grid" + i).hide();
//^^^^^          string
//       ^       concatination
//         ^     with number

答案 1 :(得分:2)

comboBox.valueProperty().addListener(new ChangeListener<Object>()
{
    @Override
    public void changed(ObservableValue observable, Object oldValue, Object newValue)
    {
        Optional<ButtonType> result = saveAlert.showAndWait();

        if(result.isPresent())
        {
             if(result.get() == ButtonType.YES)
             {
                 //Your Save Functionality
                 comboBox.valueProperty().setValue(newValue);
             }
             else
             {
                 //Whatever
                 comboBox.valueProperty().setValue(oldValue);
             }
        }
    }    
});

答案 2 :(得分:1)

您正在寻找继续JavaScript关键字。

for ( var i = 0; i <= 80; i++) {

    if(i === 51
    || i === 60
    || i === 69
    || i === 78) {

        continue;

    }

  $("grid+ i").hide();

}

答案 3 :(得分:1)

https://www.w3schools.com/js/js_break.asp

  

continue语句在循环中“跳过”一次迭代。

所以在你的循环里面做一个 if (i == 51) continuehide

之前

答案 4 :(得分:1)

给元素一个类,通过类隐藏所有元素然后显示你需要的类:

<div class="grids" id="grid0"></div>
<div class="grids" id="grid1"></div>
<div class="grids" id="grid2"></div>
...

$("div.grids").hide();
$("#grid51").show();
$("#grid60").show();

答案 5 :(得分:0)

for ( var i = 0; i <= 80; i++){
   if(i !==51 && i !== 60 && i !== 69 && i !== 78){
      $("grid+ i").hide();
   }


}