テーブル行にいくつかの追加プロパティを追加します。 (データは簡体字)のは、私は、サーバーからいくつかのJSONデータをしたと仮定しましょう、そして、 jquery expandos
:データがサーバ
HTMLで定義されたテーブルから返されるからテーブルは、オンザフライで作成されます:
people = [{name:"John Doe", person_id:"1234"}, {name:"Jane Roe", person_id:"5678"}]
私は今、(私のajax.doneハンドラで)次のコードを持つテーブルを埋める:
for(i=0; i<people.length; ++i) {
var person = people[i];
var row = $('<tr><td>' + person.name + '</td></tr>');
row.person_id = person.person_id; // <<=== HERE I'm trying to add the expando
row.click(clickHandler);
$('#myTable > tbody').append(row);
}
function clickHandler(ev) {
row = ev.currentTarget; // This is fine
id = ev.currentTarget.person_id // HERE unable to get my expando
}
一般的なHTMLオブジェクト(例: document.createElement( 'TR')、JSなし、Javascriptオブジェクトの場合、この構文は機能しています。 jQueryで何か他のことが起こっています。
(注意してください。回避策はいろいろありますが、教育目的のために、具体的にexpandosとjQueryの使い方を知りたがっています)。