0

jsbinを参照してください。 私のjsbinを見た場合は、2つのテーブルハードコードテーブルと動的テーブルがあります。ハードコードテーブルとまったく同じように動的テーブルを作成する必要があります。時間列に問題があります。テーブルをループして、ハードコードテーブルのように時間列を正確に作成するにはどうすればよいですか。

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

こういう意味ですか?

        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 に答える
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 に答える