JavaScript for-цикл с if и if not statment для отображения только текущего элемента и скрытия всех остальных

#javascript

#javascript

Вопрос:

Кажется, я не могу заставить это работать … для этого нужно переключаться между display = «block» и display = «none».

если средство проверки имеет значение true, отобразите блок, если средство проверки имеет значение false, не отобразите ни одного

Это работает в моем журнале консоли..

HTML

 <button id="knapOne">knap</button>
<button id="knapTwo">knap</button>

<p id="demo">hej</p>
<p id="anotherDemo">hej igen</p>
  

Javascript:

 var verifyer = null;
var demo = document.getElementById("demo");
var anotherDemo = document.getElementById("anotherDemo");

document.getElementById("knapOne").onclick = function(){
  verifyer = demo;
  change()
}

document.getElementById("knapTwo").onclick = function(){
  verifyer = anotherDemo;
  change()
}

function change(){
  var cars = [demo, anotherDemo];
  for (index = 0; index < cars.length; index  ) {
    if(cars != verifyer){
      console.log("this is not the current car");
      cars.style.display = "none";
    }
    if(cars = verifyer){
      console.log("this is the current car");
      cars.style.display = "block";
    }
  }
}
  

Комментарии:

1. попробуйте cars[i] ;P таким образом, вы фактически выберете правильный элемент массива. Ваша консоль должна была выдать ошибку.

2. попробуйте cars == verifyer выполнить второй оператор if..

3. index (число) никогда не будет равно cars (массив элементов).

4. В моем примере я не пытаюсь равнять индекс и массив cars. Я просто пытаюсь указать на тот же элемент. Что мне просто нужно было выбрать правильный элемент массива, как показывает использование cars[index] noa-dev и JJ173 в их примерах.

Ответ №1:

Из вашего примера кажется, что вам не хватает индекса при попытке работать с вашим массивом.

Вам нужно убедиться, что вы индексируете, чтобы цикл мог перебирать каждый элемент вашего массива:

       for (index = 0; index < cars.length; index  ) {
          if (cars[index] != verifyer){
                console.log("this is not the current car");
                cars[index].style.display = "none";
          } else if (cars[index] == verifyer){
                console.log("this is the current car");
                cars[index].style.display = "block";
          }
      }