如何在JavaScript中删除类并保存我删除的类
所以,我用html、css和javascript制作了一个记忆游戏 我做了一个按钮来切换卡片,这意味着所有拥有 ('flipped')类将删除或添加到该类中。它看起来像这样:如何在JavaScript中删除类并保存我删除的类,javascript,css,Javascript,Css,所以,我用html、css和javascript制作了一个记忆游戏 我做了一个按钮来切换卡片,这意味着所有拥有 ('flipped')类将删除或添加到该类中。它看起来像这样: 函数切换(){ var divs=document.querySelectorAll('.card'); 对于(var i=0;0
函数切换(){
var divs=document.querySelectorAll('.card');
对于(var i=0;0
我想使卡片已经翻转,不受切换按钮的影响
有什么想法吗?我想你在找
:not()选择器
var nonFlippedCards=document.queryselectoral('.card:not(.fliped');
对于(var i=0;0 }
很难理解您希望按钮做什么,但是如果您想将翻转的卡片正面朝下翻转,则不需要else语句。当你点击卡片或其他你想要的方式时,你需要添加翻转到卡片上的类,然后使用这个按钮再次将它们全部面朝下。请详细解释一下按钮的用途。如果该元素已经包含该类,则classList.add()方法不会添加“flipped”类,因此我猜您想跟踪过去翻转过的卡片吗?(我看不到你的视频)。为此,您可以使用异步数组(作用域位于函数外部)跟踪卡是否翻转。只需创建一个空数组,然后使用for循环将数组中的值设置为1,无论何时切换卡,然后在添加“flipped”类之前检查数组中是否存在该值,如下所示
var dArr = [];
function toggle (){
var divs = document.querySelectorAll('.card');
for (var i = 0; i < divs.length; i++){
if (divs[i].classList.contains('flipped')){
divs[i].classList.remove('flipped');
dArr[i] = 1;
} else if (!dArr[i]){
divs[i].classList.add('flipped'); }
}
}
var-dArr=[];
函数切换(){
var divs=document.querySelectorAll('.card');
对于(var i=0;i
旁注:您的代码中有一个简单的错误,您将0
确保包含i
,以防止出现不连续的for循环。:)
如果您想让代码更快一点,还可以在页面加载一次时抓取“.card”div,这样就不必在每次触发toggle()函数时都这样做。除非你打算随着游戏的进行添加更多的牌,否则这应该是可行的。我还将把值包装在一个对象中,以避免使用全局变量,这将防止将来发生冲突。最后,我不会调用您的函数toggle(),因为它通常在JavaScript和JavaScript库中使用。不管怎样,如果您感兴趣,这里是我的版本,init函数获取所有“.card”div,将它们粘贴到dVars对象中的元素数组中,dArr变量也存储在同一个对象中,以防止使用全局变量
var dVars = {
dArr: [],
divs: undefined
}
function flip (){
for (i = 0; i < dVars.divs.length; i++){
console.log(i);
if (dVars.divs[i].classList.contains('flipped')){
dVars.divs[i].classList.remove('flipped');
dVars.dArr[i] = 1;
} else if (!dVars.dArr[i]){
dVars.divs[i].classList.add('flipped');
console.log(i);
}
}
}
function init() {
dVars.divs = document.querySelectorAll('.card');
}
window.onload = init;
var-dVars={
dArr:[],
divs:未定义
}
函数翻转(){
对于(i=0;i
您也可以在不使用异步数组的情况下执行此操作,方法是在每个
中添加一个类“haslipped”以及“flipped”类,然后在再次添加类“flipped”之前检查
是否具有该类:
var dVars = {
divs: undefined
}
function flip (){
for (i = 0; i < dVars.divs.length; i++){
if (dVars.divs[i].classList.contains('flipped')){
dVars.divs[i].classList.remove('flipped');
} else if (!dVars.divs[i].classList.contains('hasFlipped')){
dVars.divs[i].classList.add('flipped', 'hasFlipped');
}
}
}
function init() {
dVars.divs = document.querySelectorAll('.card');
}
window.onload = init;
var-dVars={
divs:未定义
}
函数翻转(){
对于(i=0;i
希望这有帮助 我想做的是,一张已经翻动的卡片(已经显示),为了不受切换按钮的影响,我制作了一个小视频来更好地解释我自己
var dVars = {
divs: undefined
}
function flip (){
for (i = 0; i < dVars.divs.length; i++){
if (dVars.divs[i].classList.contains('flipped')){
dVars.divs[i].classList.remove('flipped');
} else if (!dVars.divs[i].classList.contains('hasFlipped')){
dVars.divs[i].classList.add('flipped', 'hasFlipped');
}
}
}
function init() {
dVars.divs = document.querySelectorAll('.card');
}
window.onload = init;