一尘不染

如何在JavaScript中按类获取元素?

javascript

我想替换html元素中的内容,所以为此使用了以下功能:

function ReplaceContentInContainer(id,content) {
   var container = document.getElementById(id);
   container.innerHTML = content;
}

ReplaceContentInContainer('box','This is the replacement text');

<div id='box'></div>

上面的方法效果很好,但是问题是我要替换其内容的页面上有多个html元素。因此,我不能使用id而是使用类。有人告诉我javascript不支持任何类型的内置get
element by class函数。那么如何修改以上代码以使其与类(而不是ID)一起使用?

PS我不想为此使用jQuery。


阅读 350

收藏
2020-04-25

共1个答案

一尘不染

此代码应在所有浏览器中都有效。

function replaceContentInContainer(matchClass, content) {
    var elems = document.getElementsByTagName('*'), i;
    for (i in elems) {
        if((' ' + elems[i].className + ' ').indexOf(' ' + matchClass + ' ')
                > -1) {
            elems[i].innerHTML = content;
        }
    }
}

它的工作方式是遍历文档中的所有元素,并在其类列表中搜索matchClass。如果找到匹配项,则替换内容。

2020-04-25