首页 > 解决方案 > 如何通过索引从元素的类列表中删除类名?

问题描述

在这种情况下,您事先不知道类名的值。例如,您确实知道类名是 html 元素的第三类。

如果你知道类名在类列表中的索引,但你不知道它的确切值,那么如何删除它呢?

我猜想这样的事情会起作用:

var elements = document.querySelector('.element');

for (var i = 0; i < elements.length; i++) {

  var classes = elements[i].classList;

  for (var j = 0; j < classes.length; j++) {

    if (classes[2] !== null) {

      elements[i].classList.delete(elements[i].classList[2])
      elements[i].classList.add('classname')

    }
  }
}

如何通过类列表的索引删除类名?以及如何用相同的索引替换或切换类名的值?

Jquery 回答的努力将不胜感激,但我的大部分好奇心都转向了香草 Javascript 解决方案。

标签: javascripthtml

解决方案


以下代码应该可以工作。假设domElement是元素,index是移除类的索引

但我必须说浏览器(或某些用户扩展)可能会改变 classList 的顺序,这通常不是一个好主意。

var domElement = document.querySelector('.element');
let classToDelete = Array.from(domElement.classList)[index];
domElement.classList.remove(classToDelete);

推荐阅读