関数内initialize()
には jQueryeach
ループがあります。そのループ内には、 jQuery が現在のループ要素this.dbcolumns
に再割り当てされているため、明らかに機能していない参照があります。では、ループ内からthis
参照するにはどうすればよいでしょうか。this.dbcolumns
ループの外でも問題なく動作します。
function datatable() {
this.url = '';
this.htmltable = '';
this.dbtable = '';
this.dbcolumns = new Array();
this.idfield = 'id';
this.pageno = 0;
this.pagesize = 15;
this.totalpages = 0;
this.totalrecords = 0;
this.searchterm = '';
this.initialize = function() {
this.dbtable = $(this.htmltable).attr('data-table');
this.dbcolumns.push(this.idfield);
$(this.htmltable + ' th[data-field]').each(function(i, col){
this.dbcolumns.push( $(col).attr('data-field') ); /* <<<<<<<<<< this line */
});
return this;
}
}