javascript - 在纯 JavaScript 中交换一个类

标签 javascript html css

我想交换一个类,与另一个类交换,但要有一个循环。当你点击如果棕色方 block 他移动到蓝色方 block 上,蓝色方 block 现在在棕色方 block 的位置上

还有更多他可以无限移动。我希望你理解这个问题,我发布了我的代码的开头

var braken = document.querySelector(".board li.braken");
    var champagne = document.querySelector(".board li.champagne");

    braken.addEventListener("click", function () {
        braken.classList.remove("braken")
        braken.classList.add("champagne");
    })
    champagne.addEventListener("click", function () {
        champagne.classList.remove("champagne")
        champagne.classList.add("braken")
    })

最佳答案

使用 querySelectorAll 和一个 forEach 循环和 classList.toggle

var things = document.querySelectorAll(".board li.champagne,.board li.braken");
[].forEach.call(things, function(thing) {
    thing.addEventListener('click', function() {
        thing.classList.toggle('champagne');
        thing.classList.toggle('braken');
    });
});

Note, eventually once all browsers have caught up, or with the right polyfill - you can do

document.querySelectorAll(".board li.champagne,.board li.braken")
.forEach(function(thing) {
    thing.addEventListener('click', function() {
        thing.classList.toggle('champagne');
        thing.classList.toggle('braken');
    });
});

"polyfill" - as long as the browser has Array.prototype.forEach

NodeList.prototype.forEach = NodeList.prototype.forEach || Array.prototype.forEach;

Array.prototype.forEach 的 Polyfill 是 here

关于javascript - 在纯 JavaScript 中交换一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42357659/

相关文章:

javascript - 如何将字符串解析为json

javascript - 无法在圆环图中可视化标签 - D3

javascript - 如何使用浏览器中的证书私钥对文档进行签名(CAPICOM 替代方案)?

javascript - jQuery - 选择覆盖在图像上的不可见文本,ala GMail PDF 查看器

html - 抓取时如何避免加入来自节点的所有文本

javascript - 为什么 Angular $routeProvider 配置需要在 HTML 中声明的 ngView

html - 使用 CSS 和 spritesheet 中的多个图像设计按钮样式

html - 过渡运行时聚焦输入搞砸了过渡元素中元素的位置

css - parent 重叠 child 的盒子阴影

jquery - 快速点击下一步使 slider 离开屏幕