次のように実行できます。
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 では、これは次のように行われます。
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQuery には Sizzle ライブラリが組み込まれており、jQuery では次のようになります。
$("#foo .bar").html("Goodbye world!");