2011-07-13 43 views
1

我想通過將日曆創建功能中的div id設置爲標題文本來設置日程安排標題。Jquery Calendar - .attr('id')得到錯誤的值

我得到id像這樣$('.dayNumberCellValue').attr('id');,但我有一個問題,當你在日曆中點擊日,我得到相同的日期到所有日子,「27」(這是我的日曆的startDate)。在我看來,$('.dayNumberCellValue').attr('id');$('.dayNumberCellValue').attr('id');是相同的日期,但爲什麼,以及如何日曆工作正常,如果他必須在所有單元格中只顯示「27」日期?

Tap功能 - >>

 $('.div-cell').tap(function() { 
          var i; 
          var myDate2; 
           for (i = 0; i < 42; i++) { 
           $('#' + i + 'dayCell').removeClass('tapped'); 

             } 

           $(this).toggleClass(
            'tapped'); 

           if($(this).hasClass('tapped')){ 


            myDate2 = $('.dayNumberCellValue').attr('id'); 
            $('#MSchedule header h4').text("S - "+myDate2);} 

        }); 

日曆creation->

function setCalendar() { 

    var cTime = new Date(); 
    var myDate = months[cTime.getMonth()] + " " + cTime.getFullYear(); 
    var myDate2 = cTime.getDate() + " " + months[cTime.getMonth()]; 


    $('#MCalendar header h4').text(myDate); 
    $('#MSchedule header h4').text("Schedule - " + myDate2) 

    var monthView = new Array(42); 

    var firstDayOfMonth = new Date(cTime.getFullYear(), cTime.getMonth(), 1); 

    while (firstDayOfMonth.getDay() != 1) { 

     firstDayOfMonth.addDays(-1); 

    } 

    var i; 

    for (i = 0; i < monthView.length; i++) { 


     startDate = new Date(firstDayOfMonth); 

     monthView[i] = startDate.addDays(i); 

     } 


for(var day=0;day<monthView.length;day++){ 

var needDay=monthView[day].getDate(); 

var cell = $('#'+day+'dayCell'); 
var content = '<div class="dayNumberCellValue" id=' +needDay+ '>' 
    + monthView[day].getDate() 
      + '</div>'; 
     cell.append(content);} 

回答

3

這條線:

myDate2 = $('.dayNumberCellValue').attr('id'); 

總是會得到第一匹配元素的id值(在t中具有類「dayNumberCellValue」的第一個元素他記錄,從頂部開始)。

您還沒有表現出您的標記,但如果你想要的元素是抽頭元素中,那麼你的tap處理程序中,你可以找到這樣的:

myDate2 = $(this).find('.dayNumberCellValue').attr('id'); 

這看起來爲先「的dayNumberCellValue 「元素this元素,其中點擊將是您正在觀看tap事件的元素。


題外話:你曾說過,你總是給我「27」,你用「27」爲元素的id提示。雖然這是recently been allowed(通過HTML5),它是invalid in HTML 4 and earlier,並仍然invalid in CSS。我建議不要使用以數字開頭的ID。事實上,我想我可能會使用data-* attribute來存儲日期而不是id

+0

好的..有沒有辦法獲得另一個值? – Sergio

+0

'$('。dayNumberCellValue')'選擇器可能會返回一個列表。你可以遍歷元素,做你的東西 – Vithozor

+0

謝謝,你的回答真的救了我:),我開始使用「數據 - *」,也感謝這一點:) – Sergio