我创建了一个"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
上声明其他value
和attr
属性,并让每个set
和get
函数返回相应的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">