Я работаю над javascript-переключателем, который скрывает все, кроме первых элементов статьи, и при нажатии на него отображает выбранную статью. Я попытался сделать это, предоставив первому ребенку определенный класс, а затем выбрав братьев и сестер первого ребенка.Javascript удаляет класс siblings в консоли, но они остаются в html
В консоли он работает, и класс удален, но это не происходит в html, и братья и сестры остаются невидимыми.
Я не могу использовать jquery для этого проекта, я бы хотел, чтобы я мог получить anwsers в простом javascript?
var articleContent = document.querySelectorAll('article > *:not(:first-child');
var i;
var k;
var selector;
var h1 = document.querySelectorAll('article > *:first-child');
console.log(h1);
console.log(articleContent);
for (i = 0; i < articleContent.length; i += 1) {
articleContent[i].classList.add('invisible');
};
for (i = 0; i < h1.length; i += 1){
var j = i;
h1[j].className = "click" + j;
h1[j].onclick = function(){
selector = document.querySelectorAll("." + h1[j].className + " ~ *");
for (k = 0; k < selector.length; k += 1){
var l = k;
selector[k].classList.remove('invisible');
console.log(selector[k]);
}
}
}
.invisible {
display: none;
}
<main>
<article>
<h1>Article 1</h1>
<section>
<h2>Sub-title</h2>
<p>Foo 1</p>
<p>Foo 2</p>
</section>
<section> \t \t \t \t
<p>Foo 3</p>
</section>
</article>
</main>
<article>
<h1>Article 2</h1>
<section>
<p>Foo 4</p>
<p>Foo 5</p>
</section>
</article>
<article>
<h1>Article 3</h1>
<section>
<p>Foo 6</p>
<p>Foo 7</p>
</section>
</article>
Извините, но здесь не используются лучшие практики! Спасибо за советы. Я добавил более простой код и css. – Maaike
Я взял на себя смелость превратить код в стэк-фрагмент и дифференцировать «foo». :-) Извиняюсь, если я что-то испортил. –