假设我有以下div:
<div class="device iphone5 black"></div>
我想要一个切换按钮来更改设备。因此,应该更改类。但是,不仅应该替换.iphone5
,还应该替换颜色.black
。
我有以下数组:
var devices = [
'.iphone5 .black',
'.nexus5',
'.iphone4s .black',
'.lumia920 .blue',
'.s5 .white',
'.htc-one'
];
如何创建一个切换器来检查具有.device
类的div是否具有在数组中定义的类之一,然后将其替换为下一个?类似的东西:
<script>
$('.device').filter(devices.join())$('.device').is(devices.join("")
.attr('class', 'device ' + devices[NEXT]);
</script>
答案 0 :(得分:2)
遍历数组,搜索与当前选择器匹配的所有元素,并用下一个数组元素替换类。
你必须反过来遍历数组。否则,在您将.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
的{{1}}子项,但您希望这些类应用于同一元素,因此它应为black
。