我有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();
}
答案 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) continue
在hide
答案 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();
}
}