我正在寻找创建函数/类的可能性



我创建了一个"field"函数来设置和获取字段的(HTML输入(值。

var field = {
set: function (id, value) {
if (typeof value === 'undefined') {
value = '';
}
$('#' + id).val(value);
}
, get: function (id) {            
return $('#' + id).val();
}
}

这允许我设置/获取输入的值:

field.set('myinput','hello');
var v = field.get('myinput');
alert(v);

目前为止,一切都好。现在我正在寻找扩展我的"函数"以设置字段的值或属性(或将来修改其他属性,如高度、颜色、可见性等(的方法。

语法应如下所示:

field.value.set('myinput','hello'); // myinput is the id of an input element
var v = field.value.get('myinput');
field.attr.set('myinput','name','value');
var v = field.attr.get('myinput','name');

构造这样的函数/类有什么可能性?

field上声明其他valueattr属性,并让每个setget函数返回相应的jQuery方法:

var field = {
set: function (id, value) {
if (typeof value === 'undefined') {
value = '';
}
$('#' + id).val(value);
}, get: function (id) {            
return $('#' + id).val();
},
value: {
set: (id, value) => {
return $('#' + id).val(value);
},
get: (id) => {
return $('#' + id).val();
},
},
attr: {
set: (id, attrib, value) => {
return $('#' + id).attr(attrib, value);
},
get: (id, attrib) => {
return $('#' + id).attr(attrib);
},
},
};
field.value.set('foo', 'newinput');
field.attr.set('foo', 'name', 'def');
console.log(field.attr.get('foo', 'name'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="foo" name="abc">

最新更新