1. ホーム
  2. javascript

[解決済み] チェックしたチェックボックスの値を配列で取得するjQuery

2022-05-29 08:08:55

質問

私は現在チェックされているすべてのチェックボックスの値を取得し、配列に格納しようとしています。以下は、これまでの私のコードです。

 $("#merge_button").click(function(event){
    event.preventDefault();
    var searchIDs = $("#find-table input:checkbox:checked").map(function(){
      return $(this).val();
    });
    console.log(searchIDs);
  });

しかし、これは私が必要とする以上のものを出力します。私は値だけでなく、私が望まない他のものも得ます。

["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002", prevObject: jQuery.fn.jQuery.init[3], context: document, jquery: "1.9.1", constructor: function, init: 関数...]。

IDだけ(今回は最初の3件)が欲しいです。

を使うことで $.each を使って、値を配列にプッシュすることで、目的の出力が得られます。

$("#find-table input:checkbox:checked").each(function(){ myArray.push($(this).val()); })

["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002"]

しかし、私は $.map を使いたいのですが、一行のコードを節約でき、より美しいからです。

ありがとうございます。

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

コール .get() を呼び出すと、生成されたjQueryオブジェクトが真の配列になります。

$("#merge_button").click(function(event){
    event.preventDefault();
    var searchIDs = $("#find-table input:checkbox:checked").map(function(){
      return $(this).val();
    }).get(); // <----
    console.log(searchIDs);
});

について ドキュメント :

戻り値が配列を含むjQueryオブジェクトであるため。 を呼び出すことは非常に一般的です。