자바스크립트 관련 질문입니다.

조회수 110회

웹달력을 만들고 있습니다. 익스프레스에서 '공휴일 목록', '음력 제사일 목록' 등의 날짜가 입력된 배열들을 랜더링 하고, pug의 스크립트 태그에서 j쿼리를 이용하여 달력에 표시하려고 합니다. 렌더링할 배열 명은 arr, ph, lunar 입니다. 그런데, pug의 스크립트 태그에서 lunar, arr, ph 배열순으로 각각 for문을 돌리면 달력에 표시가 되는데, arr, ph, lunar 배열 순으로 각각 for문을 돌리면 수행이 안 됩니다. 무슨 차이가 있을까요?

app.get('/view', function( r e q ,  res){
    ...
                res.render('view', {m:m, f_day:f_day, l_date:l_date, arr:arr, m_:moment(m).format('MM'), y:moment(m).year(), ph : ph, lunar:lunar})                 
                });
            }
        })
})

html
    body
                table
                    -for(var i = 0; i<l_date; i++)
                        tr
                            td(id='sum'+parseInt(i+1))=0
                            td(id='lunar'+parseInt(i+1))

    script.
            var arr = !{JSON.stringify(arr).replace(/<\//g, "<\\/")}
            var ph = !{JSON.stringify(ph).replace(/<\//g, "<\\/")}
            var lunar = !{JSON.stringify(lunar).replace(/<\//g, "<\\/")}
            var l_date = #{l_date}
            var m_= #{m_}
            var y = #{y}

            for(var i = 0; i<lunar.length; i++){
                for(var j = 0; j<l_date; j++){
                    if(lunar[i][0]===m_ && lunar[i][1]===j+1){
                        $('#lunar'+parseInt(j+1)).text(lunar[i][2]+' (음력)')
                    }
                }
            }

            for(var j = 0; j<arr.length; j++){
                for(var i = 1; i<l_date+1; i++){
                    if(arr[j].date.includes(i)){
                        var str = $('#week'+i).text()
                        $('#week'+i).text(str +' '+ arr[j].name);
                        $('#sum'+i).text(parseInt($('#sum'+i).text())+1);
                    }
                }
            }

            for(var j = 0; j<ph.length; j++){
                for(var i = 0; i<l_date; i++){
                    if(ph[j][0]===m_&&ph[j][1]===i+1){
                        $('#ph'+parseInt(i+1)).text(ph[j][2])
                        $('#date'+parseInt(i+1)).attr('class', 'public_holiday')
                        $('#day'+parseInt(i+1)).attr('class', 'public_holiday')
                    }
                }
            }

            for(var i = 0; i<ph_.length; i++){
                for(var j = 0; j<l_date; j++){
                    if(ph_[i][0]===y && ph_[i][1]===m_ && ph_[i][2]===j+1){
                        $('#ph'+parseInt(j+1)).text(ph_[i][3])
                        $('#date'+parseInt(j+1)).attr('class', 'public_holiday')
                        $('#day'+parseInt(j+1)).attr('class', 'public_holiday')
                    }
                }
            }
  • 에러는 뭐라고 뜨나요? 엽토군 2019.7.5 17:32
  • 엽토군님 안녕하세요? 에러는 아무 것도 뜨지 않습니다. 조영민 2019.7.6 13:59
  • 차이는 잘 모르겠고, 개발자 도구 켜서 break 걸고 디버깅 해 보세요. digda 2019.7.9 15:16
  • 답변감사합니다. ^^ 꼭 찾아낼꺼예요 조영민 2019.7.13 16:39

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.