与classList.add和getElementsByClassName一起苦苦挣扎

apr*_*kam 2 javascript getelementsbyclassname

我正在尝试为一些具有特定类(input-fieldset)的元素添加一个额外的类.

<fieldset id="pay" class="input-fieldset"></fieldset>
<fieldset id="address" class="input-fieldset"></fieldset>
Run Code Online (Sandbox Code Playgroud)

所以我做了一些搜索,发现了这个:

var element = document.getElementsByClassName('input-fieldset');
element.classList.add(' input-fieldset-awesome');
Run Code Online (Sandbox Code Playgroud)

我正在尝试添加类input-fieldset-awesome.

但它不起作用,我收到错误:

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

我究竟做错了什么?

Jam*_*ill 6

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

下面的代码将完成您所追求的目标.

// 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);
}
Run Code Online (Sandbox Code Playgroud)

这是一个可以玩的小提琴.

  • 班级清单是一个清洁工.向元素添加类的更好和相对较新的方法.它不涉及操纵`className`字符串 (2认同)