2011-07-13 9 views
1

div idをカレンダー作成機能からヘッダーテキストに設定して、スケジュールヘッダーに日付を設定したいとします。Jqueryカレンダー - .attr( 'id')が間違った値になる

このようなのようなものがありますが、カレンダーの1日をタップすると、「27」(これは私のカレンダーの開始日です)と同じ日付になります。 $('.dayNumberCellValue').attr('id');は同じ日付になりますが、なぜすべてのセルに「27」の日付だけを表示しなければならない場合、カレンダーはうまくいきますか?

タップ機能 - >>

 $('.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ハンドラ内で、あなたはこのようにそれを見つけることができます:最初の「dayNumberCellValueを探し

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

"要素内にはthis要素が表示されます。これは、タップするとtapイベントが表示されている要素になります。オフトピック


:あなたは常にあなたが要素のidとして「27」を使用している示唆している、「27」を取得していると述べました。それはrecently been allowed(HTML5)ですが、invalid in HTML 4 and earlierであり、残りはinvalid in CSSです。私は、数字で始まるIDを使用しないことをお勧めします。実際には、idではなく、data-* attributeを使用して日付を保存していると思います。

+0

ok ..別の値を取得する方法はありますか? – Sergio

+0

'$( '。dayNumberCellValue')セレクタはあなたにリストを返すかもしれません。あなたは要素をループして、あなたのものをすることができます – Vithozor

+0

ありがとう、あなたは本当に私を救っている:)と私は "データ - *"、あまりにも感謝を使用し始めた: – Sergio

関連する問題