ホームページ > 記事 > ウェブフロントエンド > jQuery の実践的なヒント_jquery
jquery を使用する上で最も重要なことは、そのプロパティやメソッドなどをよく理解することです。以下の概要は非常に優れており、頻繁に使用されるものがまとめられています
1. ページ要素に関する参照
jquery の $() による要素の参照には、id、クラス、要素名、要素の階層関係、dom または xpath 条件などのメソッドが含まれ、返されるオブジェクトは jquery です。オブジェクト (Collection オブジェクト) では、DOM で定義されたメソッドを直接呼び出すことはできません。
2. jQuery オブジェクトと dom オブジェクト間の変換
jquery で定義されたメソッドを使用できるのは jquery オブジェクトのみです。 dom オブジェクトと jquery オブジェクトには違いがあることに注意してください。メソッドを呼び出すときは、dom オブジェクトと jquery オブジェクトのどちらを操作しているかに注意する必要があります。
通常の dom オブジェクトは、通常 $() を通じて jquery オブジェクトに変換できます。
例: $(document.getElementById("msg")) は jquery オブジェクトであり、jquery メソッドを使用できます。
jquery オブジェクト自体がコレクションであるためです。したがって、jquery オブジェクトを dom オブジェクトに変換する場合は、項目の 1 つを取得する必要があります。これは通常、インデックスを通じて取得できます。
例: $("#msg")[0]、$("p").eq(1)[0]、$("p").get()[1]、$("td " )[5] これらは dom オブジェクトです。dom 内のメソッドを使用できますが、Jquery メソッドは使用できなくなりました。
次の記述方法は正しいです:
$(”#msg”).html();
$(”#msg”)[0].innerHTML; ).eq(0)[0].innerHTML;
$(”#msg”).get(0).innerHTML;
3. jQuery コレクションのアイテムを取得する方法取得した要素のコレクションから項目 (インデックスで指定) を取得するには、eq メソッドまたは get(n) メソッド、またはインデックス番号を使用できます。一方、eq は jquery オブジェクトを返しますが、get(n) とインデックスの戻り値は dom であることに注意してください。要素オブジェクト。 jquery オブジェクトの場合は jquery メソッドのみを使用でき、dom オブジェクトの場合は dom メソッドのみを使用できます。たとえば、3 番目の
要素のコンテンツを取得したいとします。以下の 2 つのメソッドがあります。
$("p").eq(2).html(); //jquery オブジェクトのメソッドを呼び出します。
$("p").get(2).innerHTML; / /dom のメソッド属性を呼び出します
4. 同じ関数が set と get を実装します
これは、主に次のような Jquery の多くのメソッドに当てはまります:
$("#msg") .html (); //ID msg の要素ノードの HTML コンテンツを返します。
$("#msg").html("new content");
//「新しいコンテンツ」を msg の ID を持つ要素ノードのコンテンツに HTML 文字列として書き込むと、ページが太字の新しいコンテンツを表示
$("#msg").text(); //ID msg の要素ノードのテキスト コンテンツを返します。
$("#msg").text("new content");
//ID msg の要素ノードのコンテンツに「new content」を通常のテキスト文字列として書き込むと、ページが表示されますnew content
$(”#msg”).height(); //id msg
$(”#msg”).height(”300″); の要素の高さを返します。 /id を msg に返します 要素の高さを 300 に設定します
$("#msg").width(); //id msg の要素の幅を返します
$("#msg") .width("300"); //id msg の要素の幅を 300 に設定します
$("input").val("); //フォーム入力ボックスの値を返します
$("input"). val("test") //テストするフォーム入力ボックスの値を設定します。
$("#msg").click(); // id msg
$(”#msg”).click(fn) の要素の click イベント //id msg
の要素の click イベントの関数を追加します。同様に、ぼかし、フォーカス、選択、送信します。イベントには 2 つの呼び出しメソッドを含めることができます
5. コレクション処理関数
jquery によって返されたコレクションのコンテンツをループして各オブジェクトを個別に処理する必要はありません。jquery はコレクションを処理するための非常に便利なメソッドを提供します。
を含む。2 つの形式:
$("p").each(function(i){this.style.color=['#f00','#0f0','#00f'][ i ] })
//インデックス 0、1、2 の p 要素にそれぞれ異なるフォントの色を設定します。
$("tr").each(function(i){this.style.backgroundColor =[. '#ccc','#fff'][i%2]})
//テーブルのインターレース色変更の効果を実現
$(”p”).click(function) (){alert( $(this).html())})
//各 p 要素にクリック イベントを追加しました。p 要素をクリックすると、そのコンテンツがポップアップします。
6. 関数を展開します。
$.extend({
min: function(a, b){return a < b?a:b; },
max: function(a, b){return a > が必要です。 b?a :b; }
}); //jquery の拡張 min メソッドと max メソッド
拡張メソッドを使用します (「$.メソッド名」を通じて呼び出されます):
alert("a=10, b=20,max=” $.max(10,20) ”,min=” $.min(10,20));
7. メソッドの連続記述をサポートします。連続書き込みと呼ばれるのは、jquery オブジェクトのさまざまなメソッドを継続的に呼び出すことができることを意味します。
例:
$("p").click(function(){alert($(this).html())})
.mouseover(function(){alert('mouse overイベント ')})
.each(function(i){this.style.color=['#f00','#0f0','#00f'][ i ]}); 8 、要素
のスタイルを操作するには、主に次のメソッドが含まれます。
$("#msg").css("background"); // 要素の背景色を返します
$(" #msg") .css("background","#ccc") //要素の背景をグレーに設定します
$("#msg").height(300); $("#msg")。 width("200") //幅と高さを設定します
$(”#msg”).css({ color: “red”, background: “blue” });//名前と値のペアの形式でスタイルを設定します
$(”#msg”).addClass( ” select”); // select という名前のクラスを要素に追加します
$(”#msg”).removeClass(”select”); // 要素の select という名前のクラスを削除します
$(”# msg” ).toggleClass("select"); // 存在する (存在しない) 場合は、select
9 という名前のクラスを削除 (追加)します。Jquery が提供するイベント処理関数を完了します。このイベント処理方法では、html要素に直接イベントを記述する必要はなく、jqueryで取得したオブジェクトに直接イベントを追加することができます。
例:
$("#msg").click(function(){alert("good")}) //クリック イベントを要素に追加します
$("p")。 click (function(i){this.style.color=['#f00','#0f0','#00f'][ i ]})
// 3 つの異なる p 要素のクリック イベントをそれぞれ設定します 異なる処理
jQuery のいくつかのカスタム イベント:
(1) hover(fn1, fn2): hover イベント (マウスがオブジェクト上を移動し、オブジェクトの外に移動する) を模倣するメソッド。マウスが一致する要素上に移動すると、最初に指定された関数がトリガーされます。マウスがこの要素の外に出ると、指定された 2 番目の関数がトリガーされます。
//テーブルの列にマウスを置くと、クラスをオーバーに設定し、離れるときにクラスをアウトに設定します。
$("tr").hover(function(){
$(this).addClass("over");
},
function(){
$(this) .addClass(”out”);
});
(2) ready(fn): DOM がロードされ、クエリと操作の準備ができたときに実行される関数をバインドします。
$(document).ready(function(){alert("Load Success")})
//ページがロードされると、「Load Success」というプロンプトが表示されます。これは onload イベントに相当します。 $(fn)
に相当 (3) toggle(evenFn,oddFn): クリックするたびに呼び出される関数を切り替えます。一致する要素をクリックすると、指定された最初の関数がトリガーされ、同じ要素が再度クリックされると、指定された 2 番目の関数がトリガーされます。後続のクリックごとに、これら 2 つの関数の呼び出しが順番に繰り返されます。
//クリックするたびに、選択した名前のクラスの追加と削除をローテーションします。
$("p").toggle(function(){
$(this).addClass("selected");
},function(){
$(this).removeClass( "selected");
});
(4)trigger(eventtype): 一致する各要素で特定のタイプのイベントをトリガーします。
例:
$("p").trigger("click"); //すべての p 要素のクリック イベントをトリガーします
(5) binding(eventtype,fn), unbind(eventtype) :event バインドとバインド解除
は、一致する各要素からバインドされたイベントを削除 (追加) します。
例:
$("p").bind("click", function(){alert($(this).text());}); //各 p 要素のイベントにクリックを追加します。
$("p").unbind(); //すべての p 要素上のすべてのイベントを削除します
$("p").unbind("click") //すべての p 要素上のすべての単一イベントを削除しますイベント
10. いくつかの実用的な特殊効果関数
その中で、toggle() メソッドと slidetoggle() メソッドは状態切り替え関数を提供します。
たとえば、toggle() メソッドには Hide() メソッドと show() メソッドが含まれます。
slideToggle() メソッドには、slideDown() メソッドと slideUp メソッドが含まれます。
11. いくつかの便利な jQuery メソッド
$.browser. ブラウザーの種類を検出します。有効なパラメータ: safari、opera、msie、mozilla。たとえば、IE: $.browser.isie であるかどうかを確認すると、IE ブラウザであれば true が返されます。
$.each(obj, fn): 一般的な反復関数。 (ループの代わりに) オブジェクトと配列を近似的に反復するために使用できます。
たとえば、
$.each( [0,1,2], function(i, n){alert( “Item #” i “: ” n); }); と同等です。 :
var tempArr=[0,1,2];
for(var i=0;i
alert(”アイテム #” i ”: “ tempArr[ i ]);
}
$.each( { name: “John”, lang: “JS” }, function(i, n){alert( “Name: ” i “, Value: ” n ) });
結果は次のようになります:
名前:name、値:John
名前:lang、値:JS
$.extend(target,prop1,propN): 1 つを使用します。またはその他のオブジェクト オブジェクトを拡張し、拡張されたオブジェクトを返すこれは、jquery によって実装される継承メソッドです。例:
$.extend(settings, options);
//設定とオプションをマージします。結果は設定に返されます。これは、オプションが設定を継承し、継承結果を設定に保存するのと同じです。
//デフォルトとオプションをマージします。
は複数のパラメータを持つことができます(複数の項目を組み合わせて返します)
$.map(array, fn): 配列マッピング(変換処理) . 後)、それを別の新しい配列に保存し、生成された新しい配列を返します。例:
var tempArr=$.map( [0,1,2], function(i){ return i 4; }) ;
tempArr の内容: [4,5,6]
var tempArr=$.map( [0,1,2], function(i){ return i > 0 ? i 1 : null; });
tempArr の内容: [2,3]
$ .merge(arr1,arr2): 2 つの配列をマージし、重複する項目を削除します。
例: $.merge( [0,1,2], [2,3,4] ) //Return [0,1,2,3,4]
$.trim(str):文字列の両端の空白文字を削除します。
例: $.trim(" hello, how are you? "); //Return "hello, how are you?"
12. カスタム メソッドまたは他のクラス ライブラリと jQuery の間の競合を解決します。
要素を取得するために自分で $(id) メソッドを定義したり、プロトタイプなどの他の JS ライブラリでも $ メソッドを定義したりすることが多く、これらの内容を同時にまとめると変数メソッドの定義が発生します。競合がある場合、Jquery はこの問題を解決する方法を具体的に提供します。
jquery の jQuery.noConflict(); メソッドを使用して、変数 $ の制御を、それを実装する最初のライブラリまたは以前にカスタマイズした $ メソッドに移します。後で Jquery を使用する場合は、すべての $ を jQuery に置き換えるだけです。たとえば、元の参照オブジェクト メソッド $("#msg") は jQuery("#msg") に変更されます。
例:
jQuery.noConflict();
// jQuery の使用を開始します
jQuery(”p p”).hide();
// 他のライブラリを使用します $()
$("コンテンツ").style.display = 'なし'