ホームページ >ウェブフロントエンド >jsチュートリアル >jquery_jqueryでのそれぞれの使い方を詳しく解説

jquery_jqueryでのそれぞれの使い方を詳しく解説

WBOY
WBOYオリジナル
2016-05-16 18:13:471341ブラウズ

each() 関数は、基本的にすべてのフレームワークによって提供されるツール関数であり、それを通じてオブジェクトや配列の属性値をトラバースして処理することができます。 jQuery と jQuery オブジェクトの両方がこのメソッドを実装します。jQuery オブジェクトの場合、各メソッドは単純に委任されます。つまり、jQuery オブジェクトは最初のパラメーターとして jQuery の各メソッドに渡されます。つまり、jQuery によって提供される各メソッドは、すべてのサブ要素です。パラメータ 1 で指定されたオブジェクトは 1 つずつ呼び出されます。 jQuery オブジェクトが提供する each メソッドは、jQuery 内のサブ要素を 1 つずつ呼び出します。

JQUERY のコア コード

コードをコピーします コードは次のとおりです。

jQuery.prototype.each=function( fn, args ) {
return jQuery.each( this, fn, args )
}

見てみましょう。 jQuery によって提供される各メソッドの具体的な実装を見てみましょう。
jQuery.each(obj,fn,arg)
このメソッドには 3 つのパラメータがあります: 操作対象のオブジェクト obj、操作対象の関数 fn演算対象、および関数パラメータの引数。
ojb オブジェクトに基づいて説明します。

1. obj オブジェクトは配列です。
各メソッドは、配列内のサブ要素に対して fn 関数を 1 つずつ呼び出します。特定のサブ要素を呼び出して返される結果は false になるまでです。つまり、提供された fn 関数で処理し、特定の条件を満たした後で各メソッド呼び出しを終了できます。 each メソッドが arg パラメーターを提供する場合、fn 関数呼び出しによって渡されるパラメーターは arg です。それ以外の場合: サブ要素のインデックス、サブ要素自体
2.obj オブジェクトは配列ではありません
このメソッドと 1 の最大の違いは、 fn メソッドは戻り値に関係なく 1 つずつ実行されることです。つまり、fn 関数が false を返した場合でも、obj オブジェクトのすべてのプロパティが fn メソッドによって呼び出されます。呼び出しで渡されるパラメータは 1 に似ています。
コードをコピー コードは次のとおりです。

jQuery.each=function( obj, fn , args ) {
if ( args ) {
if ( obj.length == unknown ){
for ( var i in obj )
fn.apply( obj, args ); }else{
for ( var i = 0, ol = obj.length; i
if ( fn.apply( obj, args ) === false )
break;
}
}
} else {
if ( obj.length == unknown ) {
for ( var i in obj )
fn.call( obj, i, obj ) ;
}else{
for ( var i = 0, ol = obj.length, val = obj[0]; i < ol && fn.call(val,i,val) !== false; val = obj [ i] ){}
}
}
return obj;
}

各メソッドの fn の具体的な呼び出し方法に注意してくださいfn(i,val) または fn(args) は単純ではありませんが、fn.call(val,i,val) または fn.apply(obj.args) の形式をとります。これは、fn の独自の実装を意味します。を使用すると、このポインターを直接使用して、配列またはオブジェクトのサブ要素を参照できます。このメソッドは、ほとんどの jQuery で使用される実装メソッドです。

例で説明してみましょう

最初にコードを見てください:

コードをコピーします コードは次のとおりです:
$("#submit").click(function(){
try{
$('#leftTbl tr').each(function) (i){
var emailInput = $("#email_" (1 i));
if(!re.test(emailInput.val())){
alert("正しくメールを送信します");
emailInput.focus();
throw emailInput;
}else{
email = emailInput.val();
}
});
}catch(e){
return false;
$("#pageform").submit()
});


スルーcatch を使用してカウンターを作成することもできます。最後にその値を判断します。

上記のコードはタイトルとは関係がないように見えますが、それぞれでの Break と continue の実装方法は実際には以下に関係します。 ...


$('input') .each(function(){
if($(this).val () == ''){
// 何かを実行します
if(1==1)return false; // return を使用しますループを抜け出すには false
else return true; // 次のループに入るには return true を使用します。


jquery では、次のことを確認する必要があります。各要素を反復した後の戻り値で、次の要素の反復を続行するかどうかを決定します
元の記事。転載する場合はその旨を明記してください: Tongluba www.tlbar.com.cn



コードをコピーします
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。