使用循环和输入文本框创建对象属性名称

时间:2012-06-21 10:20:46

标签: javascript jquery

我正在重构一些代码,我抓住输入到文本框中的值并使用所述值进行计算。问题是,而不是多次使用document.getElementByID,我想循环遍历页面上的每个文本框,并将每个值分配给此对象,我将传递给我的计算函数。我还想通过查看输入文本框ID并使用对象属性名称的ID字符串来设置此对象的属性名称。

见下面的代码:

$(document).ready(function() {

    var calcObj = new Object();
    $("input[id^='txt']").each(function(i, val) {
        calcObj[i] = this.value;
    });



    $.each(calcObj, function(i, val) {
        //        alert(val);
    });

}); 

正如您在文档准备就绪时所看到的,创建了对象。有一个jquery .each循环来遍历包含txt的id的每个输入。我将this.value赋给index为i的对象。

所以我想知道如何命名这个对象的属性并赋值,这样我就可以在代码中的其他位置引用对象属性名称,并将该对象传递给另一个函数。

感谢。

2 个答案:

答案 0 :(得分:1)

据我了解,您想要:

calcObj[this.id] = this.value;

答案 1 :(得分:1)

我并不完全得到你所要求的东西,因为看起来你已经在做我认为你在问的事了。

现在,你正在做:

calcObj[i] = this.value;

这与分配它没有区别:

calcObj['foo'] = this.value;

// and later we can access that via
alert( calcObj.foo );  // or calcObj['foo']

你也可以动态,比如:

calcObj[this.id] = this.value;