Javascript getElementsByClassName不是';t返回所有元素

Javascript getElementsByClassName不是';t返回所有元素,javascript,getelementsbyclassname,Javascript,Getelementsbyclassname,我正在创建一个按钮,我应该突出显示指定类中的某些单词,但是我在返回类中的所有元素时遇到了问题。它只有在我指定一个索引时才能工作,所以我假设现有的“for循环”可能有问题。感谢您的帮助 这会起作用,但只“突出”课堂上的第一个元素,当然: var bodyText = document.getElementsByClassName('test')[0].innerHTML; for (var i = 0; i < searchArray.length; i++) { bodyText = do

我正在创建一个按钮,我应该突出显示指定类中的某些单词,但是我在返回类中的所有元素时遇到了问题。它只有在我指定一个索引时才能工作,所以我假设现有的“for循环”可能有问题。感谢您的帮助

这会起作用,但只“突出”课堂上的第一个元素,当然:

var bodyText = document.getElementsByClassName('test')[0].innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, 
highlightEndTag);}

document.getElementsByClassName('test')[0].innerHTML = bodyText;  
return true;
var bodyText=document.getElementsByClassName('test')[0].innerHTML;
对于(var i=0;i
这根本行不通:

var bodyText = document.getElementsByClassName('test').innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, 
highlightEndTag);}

document.getElementsByClassName('test').innerHTML = bodyText;  
return true;
var bodyText=document.getElementsByClassName('test').innerHTML;
对于(var i=0;i
您无法在返回htmlcollection的内容中访问
innerHTML

因为它是用纯英语编写的:
getElementsByClassName
复数

“元素”

结尾有一个
“s”


这意味着它是一种数组(an)

正如您所看到的
getElementsByClassName
是复数的(元素)。实际上,可以将同一个类分配给多个HTML元素。您找不到任何方法来管理
[0]
,而且您也不应该这样做,因为这可能意味着您从错误的节点获取了数据。如果您需要某个特定元素的数据,并且可以确保该数据是唯一的,那么您需要给它一个id,并使用
getElementById

如果要替换多个元素中的多个字,则需要两个循环:

const testElements = document.getElementsByClassName('test');
for (const element of testElements) {
    for (const search of searchArray) {
        element.innerHTML = doHighlight(element.innerHTML, search, highlightStartTag, highlightEndTag);
    }
}

由于我们不知道
doHighlight
是做什么的,所以很难提供帮助,但问题通常是,
getElementsByClassName
返回一个集合,您需要将它与一个像梦一样工作的循环一起使用。从其他的评论中,我意识到我的解释不够清楚,但你能读懂我的心思!这正是我所缺少的。
const testElements = document.getElementsByClassName('test');
for (const element of testElements) {
    for (const search of searchArray) {
        element.innerHTML = doHighlight(element.innerHTML, search, highlightStartTag, highlightEndTag);
    }
}