現在チェックされているすべてのチェックボックスの値を取得し、配列に格納しようとしています。これまでのコードは次のとおりです。
$("#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() を呼び出すのが一般的です。