나는이 문제에 대한 해결책을 찾기 위해 몇 시간을 조사해 왔습니다. prototype.js 1.6.0.1을 사용하여 테이블을 생성하고 .each 함수와 관련된 컨텍스트에서이 객체에 문제가 있습니다. 여기 snippit입니다.prototype.js의 익명 함수 안의 "this"에 관한 질문.
var Table = Class.create({
initialize : function(id) {
this.elmnt = $(id);
this.rows = [];
},
initRows : function() {
$A(this._elmnt.tBodies).each(function(body) {
$A(body.rows).each(function(row) {
//right here is where i would like to call
// this.rows.push(row);
console.log(this); // prints DOMWindow
});
});
}
});
이이 DOMWindow에 해결 번째 .each 함수 내부에서 볼 수 있듯이. this.rows.push(row)
에 전화를 걸 수 있지만 "이"가 예상대로 해결되지 않아서 전화를 걸 수 없습니다.
도움을 주시면 감사하겠습니다. 나는 내가 표준 (i = 0; i < 길이; i ++) 루프를 수행 할 수 있음을 알고 있지만 이것을 좀 더 깔끔하게하려고 노력했다. 제공 할 수있는 모든 안내에 감사드립니다.
'Table' 개체에 행 모음을 유지하려는 이유가 있습니까? 'HTMLTableElement'는 이미 자체 컬렉션을 유지합니다. 'this.elmnt.rows' 또는 this.elmnt.tBodies [0] .rows'. – user113716
https://developer.mozilla.org/en/DOM/table.rows – user113716
이것이 내가 'each()'를 오버라이드하는 구현을 싫어하는 이유입니다. 그리고 왜 내가 커피 스크립트를 좋아 하느냐와 그 범위가 아닌 소개와 반복적 인 배열 반복 (rapating array iteration)이있다. –