1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptでクラスごとに要素を取得する方法は?

2022-04-05 06:06:50

質問

html要素内の内容を置換したいので、以下の関数を使用しています。

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

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

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

上記はうまくいくのですが、問題は、1つのページに複数のhtml要素があり、その内容を置き換えたい場合です。そのため、IDを使用することはできませんが、代わりにクラスを使用することができます。javascriptは、クラスによる要素の取得機能をサポートしていないと言われました。そこで、上記のコードをどのように修正すれば、idの代わりにclassで動作するようになるのでしょうか?

追伸:このためにjQueryを使いたくありません。

どのように解決するのですか?

このコードはすべてのブラウザで動作するはずです。

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 . 一致するものがあれば、その内容が置き換えられます。

jsFiddleの例、バニラJSを使用(つまりフレームワークなし)