我试图"读" dom-elements,然后将它们的一些值存储在Objects中。 它基本上起作用,但我想知道如何正确命名它们(例如根据它们的索引)。我喜欢拥有类似" element0.string"," element1.string"你认为哪种方法正确?
function Element(index, el, height, string) {
this.el = el;
this.height = height;
this.string = string;
this.index = index;
}
$(".element").each(function(){
var el = $(this);
var height = $(this).height();
var index = $(this).index();
var string = "Foobar";
element = new Element(index, el, height, string);
});
alert(element.index);
答案 0 :(得分:2)
您将使用each
方法附带的index参数:
$('.element').each(function(i) {
// your code
window['element'+i] = new Element( /* etc. */ );
});
基本上,您将index参数与连接的变量名一起使用。由于全局变量通常属于window
对象,因此您可以直接访问window
对象并向其添加属性(即您的全局变量)。
正如下面的评论者所说,最好的方法可能是将所有新创建的对象抛出到数组中:
var elements = [];
// your code
elements.push(new Element());
这将允许您像这样访问每个新对象:
elements[0]; // => your first element
这是一种更常见的方式,看起来更加模块化和干净。
答案 1 :(得分:1)
你在每个函数中都有elem和index
参考this
你应该以这种方式使用
$(".element").each(function(index,elem){
var height = $(elem).height();
var string = "Foobar";
element = new Element(index, $(elem), height, string);
});