私が思いついたコードは次のようになります。
var jsonObject = {};
$('.input-row').each(function(index, row) {
var innerObject = {};
$(':checkbox', row).each(function(index, checkbox) {
innerObject[checkbox.name] = checkbox.checked ? 'on' : 'off';
});
var key = $('input[type="text"]', row).val();
jsonObject[key] = innerObject;
});
console.log(jsonObject);
// use jsonObject somehow
全体的な JSON オブジェクト ( と呼ばれる) となる空のオブジェクトを作成していますjsonObject
。
次に、入力の各行を反復処理します (input-row
簡単に選択できるように、これらにクラスを追加しました)。
行ごとに、別の空のオブジェクト ( と呼ばれるinnerObject
) を作成し、そのチェックボックスを反復処理します。チェックボックスごとに、プロパティを に追加しますinnerObject
。キーはname
チェックボックスの属性/プロパティであり、値は状態に応じてon
orです。最後に、その行の入力の値を取得して のキーとして使用し、それにプロパティを追加します。off
checked
text
jsonObject
上記のコードの実際の例を次に示します。