CSS:カレンダーの今日を強調(改訂版) ― 2007年08月19日 16時03分42秒
カレンダーの今日を強調するようにしていたのに,いつの間にか反映されなくなっていました.
システム側で何らかの変更があったようなので,次男に対応を頼みました.
★新しいtoday1.jsの内容
document.getElementsByClassName = function(className){
var allObj = new Array();
var matchObj = new Array();
allObj = document.getElementsByTagName("*");
for(var i = 0; i < allObj.length; i++){
if(className == allObj[i].className){
matchObj.push(allObj[i]);
}
}
return matchObj;
}
/*今日の日付のスタイルを変更する*/
function todaychange(){
var dateTime = new Date();
var yyyy = dateTime.getYear();
var mm = dateTime.getMonth() + 1;
var dd = dateTime.getDate();
if(yyyy < 100){ yyyy += 1900; }
if(String(mm).length == 1){ mm = '0'+ mm; }
if(String(dd).length == 1){ dd = '0'+ dd; }
var flag_kongetu = 0;
var obj;
obj = document.getElementsByClassName('calendar-title')[0].getElementsByTagName("a");
for(var i = 0; i < obj.length; i++){
if(obj[i].childNodes[0].nodeValue.match(yyyy +'/'+ mm)){
/*今月のカレンダー*/
flag_kongetu = 1;
break;
}
}
if(flag_kongetu != 1){
/*今月のカレンダーではない*/
return;
}
obj = document.getElementsByClassName('calendar-cell');
for(var i = 0; i < obj.length; i++){
if(! obj[i].hasChildNodes()){ continue;}
if(obj[i].childNodes[0].hasChildNodes()){
if(obj[i].childNodes[0].childNodes[0].nodeValue.match(dd)){
obj[i].className = 'today';
} }
else if(obj[i].childNodes[0].nodeValue.match(dd)){
obj[i].className = 'today';
}
}
}
todaychange();
★主な変更点
今回のようなシステム側の小さな変更に影響されにくくする為に,ClassNameを利用して今日のセルを探すように書き直しました.
コメント
トラックバック
このエントリのトラックバックURL: http://tamo.asablo.jp/blog/2007/08/19/1736713/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
');
// -->
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。