Javascript 正在与classList.add和getElementsByClassName斗争

Javascript 正在与classList.add和getElementsByClassName斗争,javascript,getelementsbyclassname,Javascript,Getelementsbyclassname,我试图用一个特定的类(输入字段集)向某些元素添加一个额外的类 我正在尝试添加类输入字段集 但它不起作用,我得到了一个错误: 未捕获的TypeError:无法读取未定义(匿名函数)的属性“add” 我做错了什么 返回必须迭代的(对象数组) 下面的代码将完成您的目标 // Get desired elements var element = document.getElementsByClassName('input-fieldset'); // Iterate through the retri

我试图用一个特定的类(输入字段集)向某些元素添加一个额外的类

我正在尝试添加类输入字段集

但它不起作用,我得到了一个错误:

未捕获的TypeError:无法读取未定义(匿名函数)的属性“add”

我做错了什么

返回必须迭代的(对象数组)

下面的代码将完成您的目标

// Get desired elements
var element = document.getElementsByClassName('input-fieldset');

// Iterate through the retrieved elements and add the necessary class names.
for(var i = 0; i < element.length; i++)
{
    element[i].classList.add('input-fieldset-awesome');
    console.log(element[i].className);
}
//获取所需的元素
var元素=document.getElementsByClassName('input-fieldset');
//遍历检索到的元素并添加必要的类名。
对于(变量i=0;i

下面是。

getElementsByClassName
返回一个
HTMLCollection
,它没有
classList
属性,您应该遍历该集合

[].slice.call(document.getElementsByClassName('input-fieldset'))
  .forEach(function(elem) {
      elem.classList.add('cls');
  });

document.getElementsByClassName
返回具有所有给定类名的所有子元素的类似数组的对象

在您的情况下,您应该像这样修改代码

var element = document.getElementsByClassName('input-fieldset')[0];
element.classList.add(' input-fieldset-awesome');

var elements=document.getElementsByClassName('input-fieldset');

对于(var i=0;iYou正在从
getElementsByClassName
获取元素数组,请尝试仅针对特定元素,().Classlist是一种更干净、更好、相对较新的向元素添加类的方法。它不涉及操作
className
string谢谢大家的提醒。我修改了我的代码以反映您的评论。太棒了,很有效!谢谢@JamesHill
[].slice.call(document.getElementsByClassName('input-fieldset'))
  .forEach(function(elem) {
      elem.classList.add('cls');
  });
var element = document.getElementsByClassName('input-fieldset')[0];
element.classList.add(' input-fieldset-awesome');
var elements = document.getElementsByClassName('input-fieldset');
for (var i = 0; i<elements.length; i++) {
   elements[i].classList.add('input-fieldset-awesome');
}