getElementByClassName("classname").innerHTML
関数またはgetElementById("ClassName").innerHTML
に相当するものへの方法があるかどうかを知りたいです。
関数名にs
がありません。 getElementsByTagName
は、反復する必要のある要素のコレクションを返します。
var elements = document.getElementsByClassName("classname");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = 'foo';
}
IE8以前はgetElementsByClassName
をサポートしていないため、ポリフィルを見つけるか、querySelectorAll
(IE8)を使用する必要があります。
JQueryを使用することをお勧めします。ここでは、CSSセレクター(.yourclassなど)を直接使用して、特定のクラスのすべての要素を検索できます。
$('.yourclass').doWhatYouWant();
JQueryを使用しない場合は、プレーンJavaScriptを使用できます。
document.getElementsByClassName('my-fancy-class')
ただし、IE8の非互換性の問題には注意してください。別の方法として(低速ですが、より複雑なCSSセレクターを構築できます)、以下を使用できます。
document.querySelector('.cssSelector')
CSSセレクターに応答して1つの要素を返します。
document.querySelectorAll('.cssSelector')
代わりに複数の要素を返します。