gpt4 book ai didi

javascript - 如何撤消对元素样式的更改?

转载 作者:行者123 更新时间:2023-11-29 18:52:45 26 4
gpt4 key购买 nike

我使用 Javascript 创建了一个具有动态行数和列数的网格。此外,我使用 javascript 突出显示我悬停的框。但是,当我创建一个具有不同行数和列数的新网格时,突出显示框的样式更改仍然存在。我怎样才能撤消这些更改? IE。我怎样才能从一个清晰的网格开始?

let btn = document.getElementById("start")
btn.addEventListener("click", createGrid)

function createGrid() {
let numberOfRows = prompt("How many rows would you like?");
let i = 0;
let x = numberOfRows**2;

document.documentElement.style.setProperty("--columns-row", numberOfRows);

for (i; i < x ; i++) {
var div = document.createElement("div");
document.getElementById("container").appendChild(div);
div.addEventListener("mouseenter", function () {
this.style.backgroundColor = "red";
});
}
}
:root {
--columns-row: 2;
}

#container {
display: grid;
grid-template-columns: repeat(var(--columns-row), 1fr);
grid-template-rows: repeat(var(--columns-row), 1fr);
width: 500px;
height: 500px;
}

div {
width: 100%;
height: 100%;
outline: 1px solid;
float: left;
background-color: white;
}
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<title>Etch-a-sketch</title>
</head>
<body>
<h1>Etch-a-sketch</h1>
<button id="start">Start</button>
<div id="container"></div>
</body>

最佳答案

您基本上需要找到您添加了颜色的所有元素。 document.querySelectorAll允许您执行任何有效的 CSS 查询并获取与该选择匹配的元素。一旦你有了这些元素,你就可以遍历它们并删除 style 属性。唯一的问题是如何找到元素。只需对代码进行最少的更改,您就可以使用 div[style*="background-color: red"] 选择器来匹配 exact style。 .正如链接的帖子所解释的那样,这很脆弱,因此您可能会考虑将类名添加到网格中,然后改用 querySelectorAll('.myClassname')

document.getElementById('btn').addEventListener('click', () => {
const reds = document.querySelectorAll('div[style*="background-color: red"]');
reds.forEach(red => red.removeAttribute('style'));

});
div {
width: 30px;
height: 30px;
}
<div style="background-color: red"></div>
<div style="background-color: red"></div>
<div style="background-color: red"></div>
<div style="background-color: red"></div>
<button id="btn">remove red</button>

关于javascript - 如何撤消对元素样式的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50652578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com