javascript - 在没有 jquery 的情况下在 javascript 中添加和删除类

标签 javascript

我有一些段落。首先,其中一个应为红色,单击后应变为黑色,单击后应变为红色。我需要在单击每个段落时将其更改为红色,并在单击另一个段落时删除该类。我应该用 javascript 来做

var p = document.querySelectorAll("p");
for( var i = 0; i < p.length; i++ ){
	p[i].addEventListener("click", makeRed);
	p[0].classList.add("active");
}

function makeRed(){
	p[0].classList.remove("active");

	if( this.classList.contains("active")){
		this.classList.remove("active");
    } else{
    	this.classList.add("active");
    }
    
}
 .active{
    color: red;
  }
<p>Text First</p>
<p>Text Second</p>
<p>Text Third</p>

最佳答案

你的代码很好,只是有一点逻辑问题:)

var p = document.querySelectorAll("p");
for( var i = 0; i < p.length; i++ ){
	p[i].addEventListener("click", makeRed);
	p[0].classList.add("active");
}

function makeRed(){
	if( this.classList.contains("active")){
		this.classList.remove("active");
    } else{
        for( var i = 0; i < p.length; i++ ){
            p[i].classList.remove("active");
        } 
    	this.classList.add("active");
    }
    
}
 .active{
    color: red;
  }
<p class="active">Text First</p>
<p>Text Second</p>
<p>Text Third</p>

关于javascript - 在没有 jquery 的情况下在 javascript 中添加和删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943141/

相关文章:

javascript - KnockoutJS - 更新 ViewModel/Mapping 插件

javascript - 如何在js中的特殊字符\n后 trim 文本

javascript - 我正在尝试制作一个 list ,我可以在其中单击归因于每个 "task"的按钮,并且单击该单行时会删除该按钮。

javascript - 使用 django 过滤器和带有 Angular 表达式的标签

javascript - 巧妙地使用文本对齐(英语 dir=ltr 在阿拉伯语 dir=rtl)

javascript - 如何为 html 页面中的所有 ajax 错误提供全局代码?

javascript - Angular Post 数组导致数据库中全部为 NULL

javascript - 如何在 Jest 中测试默认导出的 javascript 模块?

javascript - 如何检测 Facebook 分享成功?使用Javascript

javascript - 带有类名和值的目标输入