2

Ajax呼び出しで作成しているテーブル行があります。onlclickイベントを関連付けたいと思います。トラバースしている配列から要素を渡すことができません(以下に示すコードに従ってd [i])。したがって、クリックイベントで配列要素を取得できません。

var d = $.parseJSON(data.codes);

for (var i = 0; i < d.length; i++) {
  var currentRow = $('<tr>');
  currentRow.append($('<td>').html(d[i].id));
  currentRow.attr("class", "sourceCodeRow grid-row");
  currentRow.append($('<td>').html(d[i].name));
  currentRow.append($('<td>').html(d[i].description));

  currentRow.click(function (f) {
    //want to display name from d[i]
    // alert(d[i].name);

  });

  $('#table-id').append(currentRow);
}
4

2 に答える 2

1

これが機能しない理由は、行がクリックされるとforループがループを終了したため、forループのインデックスが期待どおりではなくなったためです。クリックイベント内でアクセスできる変数に名前を設定する必要があります。名前をデータに保存するだけです。

currentRow.data('name',d[i].name);
currentRow.click(function(f ) {
       //want to display name from d[i]
        alert($(this).data('name'));

});

または、オブジェクト全体にアクセスする必要がある場合は、代わりに次のように設定します。

currentRow.data('obj',d[i]);
currentRow.click(function(f ) {
       //want to display name from d[i]
        alert($(this).data('obj').name);

});
于 2013-02-02T00:18:18.843 に答える
0

$(this)を使う必要があると思います

于 2013-02-02T00:25:21.310 に答える