ホームページ >ウェブフロントエンド >jsチュートリアル >jqueryを使用したDOMセレクションの初心者ガイド
フロントエンドの開発者またはデザイナーとして、毎日のプロジェクトでドキュメントオブジェクトモデル(DOM)を使用する必要があります。近年、JavaScriptテクノロジーの改善により、要素を選択し、DOMで動的関数を適用することがますます一般的になっています。したがって、競合を回避し、パフォーマンスを最適化するために、DOM要素を使用するという知識を習得する必要があります。 jQueryは、高度なDOMの選択とフィルタリング機能を備えた最も人気があり、一般的に使用されるJavaScriptライブラリの1つです。この記事では、jQueryの助けを借りて実際のシナリオを検討して、DOM要素をフィルタリングする方法について説明します。始めましょう。
キーポイント
ID、クラス、およびデータ属性の紹介
通常、HTML要素タグ、ID、クラス、およびデータ属性を使用して、DOMツリー内の要素を選択します。ほとんどの開発者は、選択にHTMLタグを使用することに精通しています。ただし、初心者は、さまざまなシナリオで正確な意味と必要性を知らずに、ID、クラス、およびデータ属性を誤用することがよくあります。したがって、実際のシナリオに入る前に、最初にこれら3つのオプションのそれぞれを決定しましょう。
シーン1 - ドキュメントの一意の要素を選択
これは、任意の要素を選択するために使用する最も基本的で一般的なシナリオです。検証のフォーム値を選択することは、このようなシナリオの良い例と見なすことができます。次のjQueryコードに示すように、HTML要素IDを使用して要素を選択します。
<code class="language-javascript">$("#elementID").val();</code>この方法を使用する場合、同じIDを持つ要素の重複を防ぐことが重要です。
シーン2 - クラスを使用して複数の要素を選択します 通常、ドキュメント内の複数の要素をフィルタリングする場合、クラス属性を使用します。 IDとは異なり、同じCSSクラスで複数の要素を使用できます。通常、これらのタイプの類似要素はループによって生成されます。以下のHTMLコードに示すように、ユーザーデータを含むレコードのリストがあるとします。ユーザーがクリックしてレコードを削除できる「削除」ボタンがあります。
今、類似の要素の複数のインスタンスがあるため、IDを使用して正確なレコードをフィルタリングすることはできません。指定されたCSSクラスを使用して行をフィルタリングする方法を見てみましょう。
<code class="language-html"><table> <tr> <td>Mark</td> <td><button type="button" class="user_data" value="Delete"></button></td> </tr> <tr> <td>John</td> <td><button type="button" class="user_data" value="Delete"></button></td> </tr> <tr> <td>Mike</td> <td><button type="button" class="user_data" value="Delete"></button></td> </tr> </table></code>
前のコードでは、行変数には、クラスuser_dataの3行すべてが含まれます。次に、クラスセレクターを使用してボタンをクリックするときに行を削除する方法を見てみましょう。
<code class="language-javascript">var rows = $(".user_data");</code>この手法では、すべての一致する要素を反復し、クリックされるボタンを指す$(この)オブジェクトを使用して現在のプロジェクトの関数を実行します。これは、複数の要素を扱うために最も広く使用されている方法です。次に、このようなシナリオで初心者の開発者によくある間違いを見てみましょう。
<code class="language-javascript">$(".user_data").click(function(){ $(this).parent().parent().remove(); });</code>
class
$(この)オブジェクトの代わりにクラス名を使用します
<code class="language-javascript">$(".user_data").click(function(){ $(".user_data").parent().parent().remove(); });</code>
一部のアプリケーションとWebサイトは、JavaScriptに大きく依存しており、非常に動的なクライアント機能を提供します。この場合、多数のクラスとIDを使用して、関数をフィルタリング、選択、適用する場合があります。役割に応じてクライアントにフィルタリングする必要があるユーザーレコードのリストがあるとします。フィルタリングプロセスを簡素化するために、役割をCSSクラスとして定義できます。次のコードスニペットを検討してください:
<code class="language-javascript">$("#elementID").val();</code>
開発者とデザイナーの両方の役割を持つユーザーを獲得したいとします。この場合、次のコードに示すように、複数のCSSクラスを使用できます。
<code class="language-html"><table> <tr> <td>Mark</td> <td><button type="button" class="user_data" value="Delete"></button></td> </tr> <tr> <td>John</td> <td><button type="button" class="user_data" value="Delete"></button></td> </tr> <tr> <td>Mike</td> <td><button type="button" class="user_data" value="Delete"></button></td> </tr> </table></code>同じ要素の複数のクラスを1つずつ一致させるために、任意の数のクラスを使用できます。選択の意味と結果を変えるため、クラス間のスペースを使用しないようにしてください。スペースを持つ同じコードの行を考えてみましょう:
<code class="language-javascript">var rows = $(".user_data");</code>コードは、開発者と呼ばれる親要素を持つデザイナーを探します。したがって、これら2つの実装の違いに慣れ、賢明に使用してください。同様に、この手法を使用するときにIDとクラスを混合できます。
シーン4 - データ属性を使用して要素を選択します
HTML5は、HTML要素に関連するデータを定義できるカスタムデータプロパティを導入します。これらのデータ属性には特定の一連の規則があり、プライベートデータと見なされます。そのため、データ属性を使用して、複数のAJAX要求をサーバーに作成する代わりに、任意の要素に関連するデータを保存できます。 CSSクラスの代わりにカスタムデータプロパティを使用してシナリオ2を実装する方法を見てみましょう。
<code class="language-javascript">$(".user_data").click(function(){ $(this).parent().parent().remove(); });</code>ご覧のとおり、CSSクラスの代わりにデータプロパティを使用して同じ結果を得ることができます。 jQueryは、カスタムデータ属性をサポートする高度な属性セレクターを提供します。カスタムプロパティのいくつかの高度なセレクターオプションを考えてみましょう。ユーザーメールをカスタムプロパティとして保存し、電子メールの特定の基準に基づいてユーザーを選択する必要があるとします。データプロパティを使用して、次のコードスニペットを検討してください
電子メールに「gmail」を含む要素を選択
<code class="language-javascript">$(".user_data").click(function(){ $(".user_data").parent().parent().remove(); });</code>
「英国」のメールアドレスを持つ要素を選択します
<code class="language-html"><ul> <li class="role-developer role-designer">Mark</li> <li class="role-developer">Simon</li> <li class="role-developer role-manager">Kevin</li> </ul></code>
「@」シンボルなしで無効な電子メールの要素を選択します
<code class="language-javascript">var selected_users = $('.role-developer.role-designer');</code>
ご覧のとおり、データ属性はHTML要素に関連するデータの処理において強力であり、jQueryは組み込み機能を通じて包括的なサポートを提供します。完全なプロパティセレクターリファレンスは、
<code class="language-javascript">var selected_users = $('.role-developer .role-designer');</code>https://www.php.cn/link/2705e8fde87cd2883e9fc1f0035685fシーン5 - 複数のデータ属性を使用して要素を選択
これは、シーン3で説明したものと似ており、いくつかの拡張機能があります。高度なシナリオでは、CSSクラスを使用して複数のデータ値を処理することは複雑になる可能性があります。それでは、選択に複数のデータ属性を使用する方法を見てみましょう。
<code class="language-javascript">$("#elementID").val();</code>
ここでは、複数のデータ属性の存在を確認し、部分的な検索値を介して選択できます。これで、要素選択におけるCSSクラスとデータ属性の違いを理解できるはずです。データ属性は、元素データの処理を整理する方法を提供します。ここで説明する手法は、あらゆる種類の高度な状況を満たすために他のjQueryフィルターと組み合わせて使用できます。賢明に使用することが重要です。
概要
この記事は、初心者が要素ID、クラス、およびカスタムデータプロパティの基本を理解できるようにすることを目的としています。 jQueryビルトイン関数の助けを借りて、実際のシナリオを通じてそれぞれについて説明します。その過程で、初心者の開発者からのいくつかのエラーも特定しました。この記事で説明した重要なポイントを確認して、有用なDOM選択ガイドを作成しましょう。
に関するFAQ jQueryのドキュメントオブジェクトモデル(DOM)は何ですか?
jQueryのDOM操作を簡素化する方法は?
jQueryのDOMセレクターのさまざまなタイプは何ですか?
jQueryでIDで要素を選択する方法は?
jqueryのクラスで要素を選択する方法は?
jQueryの属性セレクターは、その属性または属性値に基づいて要素を選択します。それらは正方形の括弧([])で書かれています。たとえば、「data-example」属性を持つすべての要素を選択するには、$( "[data-example]")を使用します。
各セレクターをコンマで分離することにより、jQueryの複数の要素を選択できます。たとえば、クラス「MyClass」を持つすべての要素とID「MyID」を持つすべての要素を選択するには、$( "。myclass、#myid")を使用します。
jQueryの擬似クラスセレクターは、特定の状態に基づいて要素を選択します。たとえば、「:チェックされた」擬似クラスセレクターは、選択したすべてのチェックボックスまたはラジオボタンを選択します。
jQueryは、.append()、.prepend()、.after()、.before()、.remove()、および.empty()など、domを操作するためのいくつかの方法を提供します。これらのメソッドを使用すると、DOMに要素を挿入、交換、削除できます。
jQueryは、.click()、.dblclick()、.hover()、.mousedown()、.mouseup()、.mousemove()、.mouseout()など、DOMでイベントを処理する方法を提供します。 。 。これらの方法により、これらのイベントがDOMの要素で発生したときに何が起こるかを定義することができます。
以上がjqueryを使用したDOMセレクションの初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。