あなたはこのようにそれを行うことができます:
var list = document.getElementById("foo").getElementsByClassName("bar");
if (list && list.length > 0) {
list[0].innerHTML = "Goodbye world!";
}
または、エラーチェックを減らして簡潔にするために、次のように1行で実行できます。
document.getElementById("foo").getElementsByClassName("bar")[0].innerHTML = "Goodbye world!";
説明では:
- 要素はで取得し
id="foo"
ます。
- 次に、そのオブジェクト内に含まれているオブジェクトを見つけます
class="bar"
。
- これは配列のようなnodeListを返すため、そのnodeListの最初の項目を参照します
- 次に
innerHTML
、その項目のを設定して、その内容を変更できます。
警告:一部の古いブラウザはサポートしていませんgetElementsByClassName
(例:古いバージョンのIE)。その関数が欠落している場合、その場所にシムで移動できます。
ここで、ブラウザの互換性を自分で心配するのではなく(他の人にすべての作業を任せる)、CSS3セレクタサポートが組み込まれたライブラリを使用することをお勧めします。ライブラリだけでそれを実行したい場合は、Sizzleが最適です。シズルでは、これは次のように行われます。
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQueryにはSizzleライブラリが組み込まれており、jQueryでは次のようになります。
$("#foo .bar").html("Goodbye world!");
document.getElementsByClassName
うまくいきます。