테이블 행에 몇 가지 추가 속성을 추가하고 싶습니다. 테이블은 서버jquery expandos
에서 반환 된 데이터에서 실시간으로 생성 된 HTML에 정의 된 테이블 :
다음는하자가의 내가 서버에서 일부 JSON 데이터를했습니다 가정 (데이터 간체) :
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'), Javascript 객체뿐만 아니라 JS가없는 경우이 구문이 작동합니다. jQuery와 다른 일이 벌어지고있다.
(참고로이 문제를 해결할 수있는 여러 가지 방법이 있지만 교육 목적으로 확장 성 및 jQuery로 작업하는 방법을 알고 싶습니다.)