我有一个函数调用添加到我的div中的随机数量的类:
htmlFields[i].classList.add(numbers[i]);
numbers[i]
可以添加随机类:'one','two','three','four','five'
我已经拥有'static'
,'static2'
类的div会像这样添加随机类:
<div class="static static2 five one">
<div class="static static2 two four one">
<div class="static static2 one three four">
<div class="static static2 five one">
<div class="static static2 one five four">
我想保留静态类,只添加随机类中的最后一个类。我尝试使用setAttribute()
方法,但它删除了静态类。
那么我怎样才能只添加随机类中的最后一个&#39;并保持静态类同时?
答案 0 :(得分:1)
在调用setAttribute之前的函数中,需要将当前类存储在变量中并添加随机数类,如下面的代码所示:
var currentClass = htmlFields[i].getAttribute('class');
currentClass += " " + numbers[i];
htmlFields[i].setAttribute('class', currentClass);
答案 1 :(得分:0)
显式删除所有其他随机类,或使用setAttribute
并重新添加静态类。
答案 2 :(得分:0)
删除所有“随机”类:
for ( var j = 0; j < numbers.length; ++j )
// it's safe to "remove" a class that isn't actually set,
// so we don't need to check
htmlFields[i].classList.remove( numbers[j] );
然后添加你想要的那个。
htmlFields[i].classList.add(numbers[i]);
答案 3 :(得分:0)
不确定随机类究竟是什么意思,以及你希望添加其中一个类的条件,但是这里是如何在不丢失静态类的情况下添加类的。
var elems = Array.prototype.slice.call(document.querySelectorAll('.static')),
numbers = ['one','two','three','four','five'];
elems.forEach(function(elem, i) {
elem.className = elem.className + " " + numbers[i];
});
&#13;
<div class="static static2"></div>
<div class="static static2"></div>
<div class="static static2"></div>
<div class="static static2"></div>
<div class="static static2"></div>
&#13;