Web ページを開発する場合、同じクラス名の要素、つまり同じクラスの要素を操作する必要があることがよくあります。昨日筆記試験を受けましたが、関連する質問に答えることができませんでした:
JavaScript はページ内のクラステストを持つノードを取得します
そこで、いくつかの関連情報を収集し、より良いと思われる 2 つの方法をこの記事にリストしました。欠点がある場合は、皆さんに批判して修正していただければ幸いです。もっと良い方法があれば、共有していただければ幸いです。
ソリューション 1 Jeremy Keuth ソリューション
Jeremy Keuth おじさんは、書籍『The Art of JavaScript DOM Programming (第 2 版)』(英語: DOM Scripting-Web Design with JavaScript and the Document Object Model) の第 3 章、セクション 4 で getElementsByClass メソッドについて説明しました。また、この属性をサポートしていないブラウザ (IE6、IE7、および IE8 は無視しましょう) でこのメソッドを適用する方法についても説明しています。抜粋はここにありますが、いくつかの場所は変更されています。
HTML5 DOM には、クラス属性のクラス名を通じて要素にアクセスできる新しいメソッドがあります。このメソッドは比較的新しいため、一部の DOM 実装ではまだ使用できません。ご使用の際はご注意ください。まず、この方法で何ができるかを見てから、この方法を確実に使用する方法について説明します。
getELementsByTagName メソッドと同様に、getElementsByClassName はクラス名である 1 つのパラメーターのみを受け入れます:
getElementsByClassName(クラス)
このメソッドの戻り値も getElementsByTagName と似ており、同じクラス名を持つ要素の配列です。次のコード行は、クラス名が「sale」であるすべての要素を含む配列を返します。
document.getElementsByClassName("セール")
このメソッドを使用して、複数のクラス名を持つ要素を検索することもできます。複数のクラス名を指定するには、文字列引数内でクラス名をスペースで区切るだけです。たとえば、次のコード行を <script> タグに追加します。
<br><br><div class="codetitle"><span>コードをコピー<a style="CURSOR: pointer" data="71155" class="copybut" id="copybut71155" onclick="doCopy('code71155')"><u></u> コードは次のとおりです:</a></span></div>
alert(document.getElementsByClassName("セール重要").length);<div class="codebody" id="code71155">
<br><br>
</div>完全なコード<p><strong>
</strong></p>
<p></p>
<div class="codetitle"><span>コードをコピーします<a style="CURSOR: pointer" data="10676" class="copybut" id="copybut10676" onclick="doCopy('code10676')"><u></u> コードは次のとおりです:</a></span></div>
<!DOCTYPE html><div class="codebody" id="code10676">
<br>
<頭><br>
<メタ文字セット="utf-8">
<title>買い物リスト</title><br>
</頭> <br>
<br>
<h1>何を買うか</h1><br>
<p title="優しいリマインダー">これを忘れずに購入してください。</p><br>
<ul id="購入"><br>
</ul><br>
<スクリプト><br>
alert(document.getElementsByClassName("セール重要").length);<br>
</script>