如何添加类列表,只显示JavaScript中的最后一个?

时间:2015-11-24 14:51:34

标签: javascript setattribute

我有一个函数调用添加到我的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;并保持静态类同时?

4 个答案:

答案 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)

不确定随机类究竟是什么意思,以及你希望添加其中一个类的条件,但是这里是如何在不丢失静态类的情况下添加类的。

&#13;
&#13;
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;
&#13;
&#13;