我创建了一个“字段”功能来设置和获取字段的(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');
构造这样的函数/类有什么可能性?
答案 0 :(得分:1)
在value
上声明其他attr
和field
属性,并让每个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">