javascript - 更改所有边框颜色
问题描述
单击按钮后,我正在尝试更改当前页面上的所有边框颜色。我通过切换一个类并在 CSS 中定义该类来做到这一点。
var all = document.querySelector("*")
changeBorder = function() {
all.classList.toggle("border");
}
*.border {
border-style: solid;
border-color: green;
}
div {
border: 1px solid black;
}
<button onclick="changeBorder()">Change the borders</button>
<div>Border</div>
<div>Border</div>
<div>Border</div>
<div>Border</div>
<div>Border</div>
上面的代码不起作用,因为它将边框应用于页面上的所有内容,并且删除“边框样式”将使代码无效。
解决方案
首先尽量避免on
使用 HTML 属性来调用函数,而是使用带有addEventListener
classList
这是一个基本代码,可以通过在循环中使用来完成您想要实现的目标forEach
//short version
document.querySelector('.js-toggle').addEventListener('click', () => document.querySelectorAll('div').forEach(el => el.classList.toggle('red')))
//regular version
//document.querySelector('.js-toggle').addEventListener('click', () => {
// document.querySelectorAll('div').forEach((el) => {
// el.classList.toggle('red')
// })
//})
div {
border: 1px solid black
}
.red {
border-color: red
}
<button class='js-toggle'>Change the borders</button>
<div>Border</div>
<div>Border</div>
<div>Border</div>
<div>Border</div>
<div>Border</div>
如果你真的想选择所有元素来改变边框,你可以使用通配符选择器*
//short version
document.querySelector('.js-toggle').addEventListener('click', () => document.querySelectorAll('*').forEach(el => el.classList.toggle('red')))
//regular version
//document.querySelector('.js-toggle').addEventListener('click', () => {
// document.querySelectorAll('*').forEach((el) => {
// el.classList.toggle('red')
// })
//})
div {
border: 1px solid black
}
.red {
border-color: red
}
<button class='js-toggle'>Change the borders</button>
<div>Border</div>
<div>Border</div>
<div>Border</div>
<div>Border</div>
<div>Border</div>
推荐阅读
- http - 有没有办法在不使用 IP 地址或存储 cookie 的情况下对网站访问者进行“指纹识别”?
- django - Django中的自动created_by字段
- php - 登录 Fat-Free Framework 时如何获取用户名?
- swift - 将点转换为全局坐标
- computer-science - 为什么我的 if 语句中的 else 没有返回正确的输出?
- javascript - 比较和过滤对象中的日期属性
- php - 通过将参数数组传递给 __construct() 来创建对象的函数?
- c# - HttpClient 从 URL 下载图片然后上传图片
- php - 在 url 中找不到带有 % 的 Wordpress rest api
- ios - 将 FCMToken 上传到 Firestore 的正确方法?