我有一个关于jquery和DOM操作的问题。你如何处理DOM控件,例如
我必须从文本输入中获取价值,所以我可以这样做:
var SomeClass = function() {
var control;
this.setControl = function(c) {
control = c;
}
this.getValue = function() {
return control.val();
}
}
$(document).ready(function() {
var sc = new SomeClass(); // of course control could be passed in contructor as well
sc.setControl($('#CONTROL'));
console.log(sc.getValue());
});
或
var SomeClass = function() {
var control = $('#CONTROL');
this.getValue = function() {
return control.val();
}
}
$(document).ready(function() {
var sc = new SomeClass();
console.log(sc.getValue());
});
你有什么看法?什么是更好的,也许这是一堆垃圾,因此什么是最好的解决方案。 Plz不要把我送到骨干,脊椎等等。我只是在jquery中进行了互动。
最好!
编辑:
你是将逻辑与UI分开还是混合它? 更复杂的例子
在js文件中你有一个使用文本控件的类,在secound js文件中你也需要来自这个输入的值。你在做什么?你只需每次调用$('#control')或创建第三个js文件,在那里将是一个独立的“类”来操纵这个输入?
答案 0 :(得分:1)
在构造函数中移动setValue()会更有意义:
SomeClass = function(c) {
var control = c;
return {
getValue: function() {
return control.val();
}
}
}
var x = new SomeClass($('input'));
alert(x.getValue());
但是,我不确定这种信息隐藏的价值有多大。也许作为某种视图包装。
在许多情况下,你不需要这个包装器,所以只需:
var $x = $('input'); // keep reference to a bunch of <input> elements.