0

如果您看到我的 jsbin,请查看 jsbin ,然后我有两个表硬编码表和动态表。我必须像硬编码表一样创建动态表。我在小时列中遇到问题我如何循环遍历表以准确创建小时列,如硬编码表。

for (var i = 1; i < parseFloat(timeSlot); i++)
            {
                row = tableAppointment.insertRow(i);
                cell1 = row.insertCell(0);
                cell1.className += 'csstablelisttd';
                cell2 = row.insertCell(1);
                cell2.className += 'csstablelisttd';
                cell3 = row.insertCell(2);
                cell3.className += 'csstablelisttd';
                cell1.innerHTML = startTime;                
                cell2.innerHTML = parseFloat(constMinutes);
                constMinutes = parseFloat(constMinutes + 15);
                if (constMinutes == "60")
                {
                    constMinutes = 0;
                }
            }
4

3 回答 3

1

http://jsbin.com/unaqel/20/edit#javascript,html,live

使用 Date 对象,它会显着减少你的代码

于 2012-06-20T10:30:37.840 回答
1
if (constMinutes === 0)
                {
                    cell1.innerHTML = startTimeHour++ + ":00" + startTimeAMPM;
                    if (startTimeHour >= 12)
                    {
                        cell1.innerHTML = startTimeHour + ":00" + endTimeAMPM;              
                    }           
                }
于 2012-06-20T10:50:37.157 回答
1

你的意思是这样吗?

        for (var i = 1; i < parseFloat(timeSlot); i++)
        {
            row = tableAppointment.insertRow(i);
            cell1 = row.insertCell(0);
            cell1.className += 'csstablelisttd';
            cell2 = row.insertCell(1);
            cell2.className += 'csstablelisttd';
            cell3 = row.insertCell(2);
            cell3.className += 'csstablelisttd';

            if (constMinutes === 0) {
              cell1.innerHTML=startTimeHour++ + ":00" + startTimeAMPM;
            }   

            cell2.innerHTML = parseFloat(constMinutes);
            constMinutes = parseFloat(constMinutes + 15);
            if (constMinutes == "60")
            {
                constMinutes = 0;
            }
        }

我已经修改了它设置的行cell1.innerHTML

            if (constMinutes === 0) {
              cell1.innerHTML=startTimeHour++ + ":00" + startTimeAMPM;
            }   

编辑:

对于正确的 AM 或 PM,我设置了一个递增的整数并使用模运算符。这样,随着它的增加,它只会是 0 或 1。每次达到 12 时,我都会增加它。然后它从数组(AMPM[0] 或 AMPM[1])中获取文本。

        cellAMPM = 0;
        AMPM = ["AM","PM"];

...

            if (constMinutes === 0) {

              if (startTimeHour === 12) cellAMPM++;
              cell1.innerHTML= startTimeHour + ":00" + AMPM[cellAMPM%2];

              startTimeHour = Number(startTimeHour) % 12 + 1;

            }   
于 2012-06-20T10:16:46.557 回答