2

次の例のようなjSONajax応答があります。

['PostA1'] =>1
['PostA2'] =>1
['PostA3'] =>2
['PostB1'] =>1
['PostB2'] =>3
['PostB3'] =>0
['PostB4'] =>2
['Pre1'] =>1
['Pre2'] =>2
['Pre3'] =>1
['Pre4'] =>3
['Pre4'] =>3

PostA-x、PostB-x、およびPreデータは、値に応じて設定する必要のあるラジオボタンのセットを指します。これを行うには、次のような個々のコードを処理するコードを1行記述します。

$("input[id='Pre1-" + data.Pre1 + "']").attr('checked','checked');
$("input[id='Pre1-" + data.Pre2 + "']").attr('checked','checked');
$("input[id='PostA1-" + data.PostA1+ "']").attr('checked','checked');
$("input[id='PostA2-" + data.PostA2 + "']").attr('checked','checked');

...など...しかし、理想的には、次のようなデータセットをループできるようにしたいと思います...

        i = 1;
        $.each("--Aray which starts with PostA--" + i){
              $("input:radio[id='PostA-" + data.PostA -- incrementer variable -- + "'].attr('checked',checked');
i++;
    }

次に、3つのデータセットのそれぞれについてこのループを繰り返します...しかし、最初はjQueryセレクターがあまり得意ではなく、次にセレクター内で変数変数を作成する方法がわからないため、私は本当に行き詰まっています。

うまくいけば、これは理にかなっています!あなたたちがこれを行う方法について何かアドバイスがあれば(多分私はこれを完全に間違った方法で行っているのですか?!?!?)、それは大いにありがたいです。

ダン

4

2 に答える 2

1

for..inオブジェクトをループするために使用できます。

for (var key in data) {
  // $("input[id='" + key + "-" + data[key]+ "']").prop('checked', true);
  // below is better if select by id
  $('#'+key+'-'+data[key]).prop('checked', true);
}
于 2012-08-27T10:27:38.563 に答える
0

data代わりに繰り返してみませんか?$ .each()を使用してこれを行い、各キーと値のペアから現在の要素のIDを構築できます。

$.each(data, function(key, value) {
    $("#" + key + "-" + value).prop("checked", true);
});
于 2012-08-27T10:27:06.890 に答える