Javascript проблема добаваления классов css

154
11 февраля 2019, 11:00

Возникла проблема с добавлениeм классов css с помашю Javascript . Есть задача не использовать jquery. Проблема заключается втом что при нажати на текст исчезают все блоки а не те которые нужны. Заранее спасибо вот код

<div class="top-navigation" id="div">
             <p>Content-One</p>
                <p>Content-Two</p>
                   <p>Content-Three</p>
        </div>  
    <div class="content-wrapper" id="wrapper">
        <div class="content visible">
            <h1>Content-One</h1>
        </div>
        <div class="content">
            <h1>Content-Two</h1>
        </div>
        <div class="content">
            <h1>Content-Three</h1>
        </div>
    </div>
<script type="text/javascript">
     var content=document.getElementById('wrapper').getElementsByClassName('content');
     var btn=document.getElementById('div').getElementsByTagName('p');
for(var i=0; i < btn.length; i++){
    btn[i].addEventListener("click" , openfunction);
    }
  function openfunction(){
    for(var i=0; i < content.length; i++){
         content[i].classList.remove('visible');
           }
           this.classList.add('visible');    
    }
</script>

var content = document.getElementById('wrapper').getElementsByClassName('content'); 
var btn = document.getElementById('div').getElementsByTagName('p'); 
 
for (var i = 0; i < btn.length; i++) { 
  btn[i].addEventListener("click", openfunction); 
} 
 
function openfunction() { 
  for (var i = 0; i < content.length; i++) { 
    content[i].classList.remove('visible'); 
  } 
  this.classList.add('visible'); 
}
.content { 
  display:none; 
} 
 
.visible { 
  display:block; 
}
<div class="top-navigation" id="div"> 
  <p>Content-One</p> 
  <p>Content-Two</p> 
  <p>Content-Three</p> 
</div> 
 
<div class="content-wrapper" id="wrapper"> 
  <div class="content visible"> 
    <h1>Content-One</h1> 
  </div> 
  <div class="content"> 
    <h1>Content-Two</h1> 
  </div> 
  <div class="content"> 
    <h1>Content-Three</h1> 
  </div> 
</div>

Answer 1

var content = document.getElementById('wrapper').getElementsByClassName('content'); 
var btn = document.getElementById('div').getElementsByTagName('p'); 
 
for (var i = 0; i < btn.length; i++) { 
  btn[i].addEventListener("click", openfunction); 
} 
 
function openfunction() { 
  for (var i = 0; i < content.length; i++) { 
    content[i].classList.remove('visible'); 
  } 
  for (var j = 0; j < btn.length; j++) { 
    if (btn[j] == this) { 
      content[j].classList.add('visible'); 
      break; 
    } 
  } 
}
.content { 
  display:none; 
} 
 
.visible { 
  display:block; 
}
<div class="top-navigation" id="div"> 
  <p>Content-One</p> 
  <p>Content-Two</p> 
  <p>Content-Three</p> 
</div> 
 
<div class="content-wrapper" id="wrapper"> 
  <div class="content visible"> 
    <h1>Content-One</h1> 
  </div> 
  <div class="content"> 
    <h1>Content-Two</h1> 
  </div> 
  <div class="content"> 
    <h1>Content-Three</h1> 
  </div> 
</div>

READ ALSO
Сохранение web страницы в файл

Сохранение web страницы в файл

Есть страница с некоторыми записям и с check button у каждой записиПосле проставления галочек и нажатии на кнопку открывается новая страница,...

146
Размер Landing Page

Размер Landing Page

Сколько должен быть размер лэндинга? у меня оно весит 75мб - это много? слышал что размер лэндинга максимум должен быть 2 мб, а у меня 7

183
В чем может быть проблема выравнивания через row; col?

В чем может быть проблема выравнивания через row; col?

Нужно сделать сеткуПрописал код, но он выравнивает именно вертикально, впритык

175
Как сделать кнопку &#39;Далее&#39;, чтобы она появлялась при определенном количестве слов?

Как сделать кнопку 'Далее', чтобы она появлялась при определенном количестве слов?

Всем приветРебят, у меня вопрос, я задал размеры блоку height: 150; width: 250; Когда человек оставляет комментарий не более 25 слов, необходимо, чтобы...

145