在javascript / jquery中读取/更新数组对象的数组

时间:2010-01-25 19:48:28

标签: javascript jquery

我正在尝试执行以下操作,但我不知道该怎么做。我有一个网格(如excel),用户将在其中输入信息。网格具有“empno”,“paycode”,“payrate”,“hours”等列。用户将在网格中为系统中的每个员工输入单独的记录。所以网格看起来像下面的

empno    paycode      payrate          hours
1        R            25.00            40.00
2        R            12.00            40.00
3        R            15.00            18.00
1        v            25.00            12.00
2        PTO          25.00            18.00

在这个网格下方,我将有两个网格。一个显示“员工总数”,一个显示“按工资代码总计”。因此,当用户在网格中输入数据时,我计划将值添加/更新为二维数组。然后当用户点击网格上的特定记录时,我将从该记录中读取empno并通过将数组绑定到html表来显示员工总数。如您所见,用户输入的数据可能不是empno的顺序。用户可能首先输入付费代码“R”的数据,然后输入代码“V”等。

请让我知道你的想法。

2 个答案:

答案 0 :(得分:1)

为什么不将它存储在一个与您的员工编号关联的JavaScript对象中。例如......

var emps = {};

emps['1'] = [
    {
        empno : '1',
        paycode : 'R',
        payrate : '25.00',
        hours : '40.00'
    },
    {
        empno : '1',
        paycode : 'G',
        payrate : '30.00',
        hours : '10.00'
    }
];

function getEmp( empno ) {
    if ( emps[empno] && typeof emps[empno] === "object" ) {
        return emps[empno];
    } else {
        return false;
    }
}
function addRecord( record ) {
    if ( !emps[record.empno] || typeof emps[record.empno] !== "object" ) {
        emps[record.empno] = [];
    }
    emps[record.empno].push( record );
}

答案 1 :(得分:0)

听起来您想循环输入字段,并更新员工总计字段。

如果员工编号记录的数量未知,我会为每个输入使用一个id,类似于: id = empno_x 其中x是每个员工的唯一ID。然后,您可以使用jquery来获取值:

//Loop through all employee number input fields
$(":input[id^='empno_']").each function(){
  //Do whatever you need to do with the data (add it to an array etc)
});

所以你会为empno,paycode,payrate和hours字段做到这一点。

捕获输入的数据后,只需使用Jquery操作HTML即可。

希望这有帮助!