我已经通过一些类似的问题,但无法找到一个在香草JS回答如何添加和删除类的具体示例到与点击的元素不同的元素。我知道这与建立一个循环并遍历元素有关,但我在确切的过程中迷失了方向。使用香草javascript添加/删除类到不同的元素后点击另一个
我有一个类名称为faq-container
的元素,当我点击其中的任何元素时,我想将类faq-display
添加到body标签中。我知道我必须建立一个像for (var i = 0; i < elements.length; i++) { elements[i].classList.remove('hover'); }
这样的循环,但我不确定在代码中将它写在哪里以使其工作。我尝试了很多方法,但都失败了。
我目前的脚本如下,我只是针对数组中的第一个元素,但我希望能够单击任何faq-container
元素并将类名称添加到第一个且唯一的正文标记中:
document.addEventListener("DOMContentLoaded", function() {
document.getElementsByClassName('faq-container')[0].addEventListener('click', function() {
var faqToggle = document.getElementsByTagName('body')[0];
if (faqToggle.classList.contains('faq-display')) {
faqToggle.classList.remove('faq-display');
// alert("remove faq display!");
} else {
faqToggle.classList.add('faq-display');
// alert("add faq display!");
}
});
});
<div class="faq-container cf" id="faq-container">
<h3 <?=ifxless::element('name')?>><?=ifxless::fill($this,'name');?> </h3>
<div class="faq-content">
<div class="h_line"> </div>
<div class="faq-bullets" <?=ifxless::element('content')?>>
<?=ifxless::fill($this, 'content');?>
</div>
</div>
</div>
请更新与HTML代码片段,使其成为[MCVE] – mplungjan
的标记是用公司的内容管理系统的一部分代码块。但我会将其添加到我的示例中... – sdawes
请参阅我的更新以获得更好的解决方案。 – mplungjan