2

json データの内容に基づいて、チェックボックスのリストを動的に生成しています。

tempfairway の形式: [{"FairWay":"A"},{"FairWay":"B"}, {"FairWay":"C"}, {"FairWay":"D"}]

var topics = tempfairway;
var topicContainer = $('ul#fairway_list');
$.each(topics, function (iteration, item) { topicContainer.append(
$(document.createElement("li")).append(
$(document.createElement("input")).attr({
        id: 'topicFilter-' + item,
        name: item, 
        value: item,
        type: 'checkbox',
        checked: true
        })
        //onclick
        .click(function (event) {
         var cbox = $(this)[0];
         alert(cbox.value);
         })
).append(
$(document.createElement('label')).attr({
'for': 'topicFilter' + '-' + item
}).text(item)
   )
     )
});

チェックボックスは正しい番号で正常に生成されますが、フェアウェイの名前ではなく [object Object] が表示されます。

これを修正する方法についてのアイデアはありますか?

これに追加するいくつかの質問: -tempfairway に一意の値のみを表示したい場合はどうすればよいですか? -.クリックは、その単一のチェックボックスの値を取得するように設定されています。ユーザーがいずれかのチェックボックスを選択解除した場合に、すべてのチェックボックスを反復処理して、選択されたすべてのチェックボックスの値を取得するにはどうすればよいですか?

4

1 に答える 1

0

行で:

> $.each(topics, function (iteration, item) {

item は のようなオブジェクトな{"FairWay":"A"}ので、次の場所があります。

> .text(item)

あなたはおそらく欲しい:

 .text(item.FairWay)

の他の用途についても同様ですitem。または、値を変数に格納して使用することもできます。

var fairwayName = item.FairWay;
...
.text(fairwayName);
于 2012-10-31T02:30:37.223 に答える