jQuery はチェックされたチェックボックスの値を配列に取得します 質問する

jQuery はチェックされたチェックボックスの値を配列に取得します 質問する

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

 $("#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", 前のオブジェクト: jQuery.fn.jQuery.init[3], コンテキスト: document, jquery: "1.9.1", コンストラクター: function, init: function…]

ID だけを希望します (この場合は最初の 3 つの項目)。

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

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

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

$.mapただし、コード行を節約でき、見た目もきれいなので、を使用したいと思います。

ありがとう

ベストアンサー1

.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オブジェクトなので、基本的な配列を操作するために、結果に対して .get() を呼び出すのが一般的です。

おすすめ記事