我正在构建我的第一个 jQuery 插件。它获取 JSON 数据并将其加载到表中。我已经完成了大部分逻辑,只是在构建默认选项数组时遇到了麻烦。
我想做的是像这样传递一个选项数组:
/* Column array format:
cols:
[colname:
{
title: 'Column Title', // Column title for display (if not specified, will
// use 'colname' value instead.
sorttype: 'text', // 'text', 'dropdown' or 'none'
},
nextcolname:
{
...
},
...
]
*/
如果没有传入任何选项,我遇到的问题是打包默认数组。这就是我所拥有的:
var settings = $.extend ({
'cols' : 'auto',
'sortable' : 'true' //turn off sorting altogether with this option.
}, options);
var index = '';
var element = '';
var colname = '';
// No columns specified. That's OK, grab keys from first JSON element.
if (settings.cols == 'auto')
{
settings.cols = Object.keys(data[0]);
$.each(settings.cols, function(index, colname){
settings.cols[colname].title = colname;
settings.cols[colname].sorttype = 'text';
})
}
首先,从风格上来说,看起来我的做法是正确的吗?选项数组的格式和我解析它的方式是否有意义?其次,settings.cols[colname].title 返回一个类型错误,因为它不存在(当然)。我如何填充这个对象,以便我可以有效地使用它,以便我可以遍历它?