javascript - Jquery - 替换数组中定义的多个类

标签 javascript jquery arrays toggle

假设我有以下 div:

<div class="device iphone5 black"></div>

我想要一个切换按钮来更改设备。因此,应更改类。但是,不仅 .iphone5应该更换,颜色.black也应该更换。

我有以下数组:

var devices = [
            '.iphone5 .black',
            '.nexus5',
            '.iphone4s .black',
            '.lumia920 .blue',
            '.s5 .white',
            '.htc-one'
        ];

我如何制作一个切换器来检查一个 div 是否带有 .device类具有数组中定义的类之一,然后用下一个替换它?像这样的东西:

<script>
$('.device').filter(devices.join())$('.device').is(devices.join("")
        .attr('class', 'device ' + devices[NEXT]);
</script>

最佳答案

遍历数组,搜索与当前选择器匹配的所有元素,并用下一个数组元素替换类。

你必须反向循环数组。否则,当你把.iphone5.black改成.nexus5后,下一次迭代会把它改成.iphone4s.black,一切就结束了到数组中的最后一个类。

for (var i = devices.length-2; i >= 0; i--) {
    $(".device" + devices[i]).attr("class", "device " + devices[i+1].replace(/\./g, ' '));
}

此外,您需要从 devices 中的值中取出空格。 .iphone5 .black 表示搜索 .iphone5 的子类为 black,但您希望这些类应用于相同的元素,所以它应该是 .iphone5.black

关于javascript - Jquery - 替换数组中定义的多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44304410/

相关文章:

javascript - 如何传递可变数量的参数以及回调函数?

javascript - fadeOut 不会在 Firefox 中正确设置动画

javascript - 使用以 <br/> 分隔的字符串创建数组或选择字段

c++ - 我正在尝试在失败的头文件中创建一个对象数组(启动 C++ 程序员)

java - Hibernate 和 PostgreSQL 中具有 UserType 的数组 --> MappingException

C:将数组转换为RGB图像

javascript - 使用循环从 javascript 中的对象获取函数结果

javascript - 限制 Jekyll Search 中的搜索结果

javascript - 扩展 JavaScript 的 Date.parse 以允许 DD/MM/YYYY(非美国格式的日期)?

javascript - 确定一个字符串是否是一个有效的 jQuery 选择器?