1. ホーム
  2. jquery

[解決済み] $.each(selector)と$(selector).each()の違いは何ですか?

2023-05-17 04:24:20

質問

これはどう違うのですか。

$.each($('#myTable input[name="deleteItem[]"]:checked').do_something());

とこれを

$('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something });

選択されて作用しているテーブルセルのhtmlは次のようになります。

<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>

jQueryのドキュメントを読み返しましたが、まだ違いが分かりません。(私だけでしょうか、それともそのドキュメントは時々、内容の明確さにおいて若干 "nebulous"なのでしょうか?)

情報を追加しました。

どうやら私の一般的な例の試みは、人々を混乱させているようです! 最初の例の括弧が (以前は) 無かったのと一緒です :(

最初の例は、チェックボックスがチェックされている行の <tbody> を削除する私のコード内の行から来ました。

$.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove());

2つ目の例は、チェックされたチェックボックスを#classesTableで調べ、ドロップダウンでその一致する項目を削除する状況から来ています。

$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){
    $('#classesList option[value="' + $(this).attr('value') + '"]').remove();
});

2つの異なることをするのは理解できますが、"この場合は$.each()を、別の場合は.each(function() {})を使う必要がある、と言えるほどではありません。

これらは全く互換性がないのですか?ある場合だけですか?決してそうではない?

どのように解決するのですか?

説明

.each はイテレータで、jQueryオブジェクトのコレクションのみを繰り返し処理するために使用されます。 オブジェクトのコレクションに対して反復処理するために使用されます。 jQuery.each ( $.each ) は、一般的な 関数は、JavaScriptのオブジェクトや配列を反復処理するための一般的な関数です。


1) $.each() 機能

var myArray = [10,20,30];

$.each( myArray, function(index, value) {
   console.log('element at index ' + index + ' is ' + value);
});

//Output
element at index 0 is 10
element at index 1 is 20
element at index 2 is 30

2)使用方法 .each() メソッド

$('#dv').children().each(function(index, element) {
    console.log('element at index ' + index + 'is ' + (this.tagName));
    console.log('current element as dom object:' + element);
    console.log('current element as jQuery object:' + $(this));
});

//Output
element at index 0 is input
element at index 1 is p
element at index 2 is span


リソース