2010-10-18 3 views
1

Je travaille sur un problème pour le moment avec lequel j'ai beaucoup de difficultés. grâce à certains programmeurs incroyablement merveilleux j'ai un code javascript qui me permet de mettre en évidence une ligne complète sur une table si une cellule, avec id = "date", a une date qui est dans le passé. cependant maintenant j'essaye de convertir ceci de sorte qu'il accentue seulement la cellule avec la date elle-même. le code que j'ai donc estsurligner cellule individuelle

<script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
<style type="text/css"> 
body { 
background-color: transparent; 
padding: 10px; 
} 
#demotable1 tr { 
background: white; 
} 

#demotable1 tr.past { 
background: #FF0000; 
color: #999999; 
} 
</style> 
<script type="text/javascript"> 
//<![CDATA[ 

$(function() 
{ 
$('#demotable1 .date').each(function() 
{ 
var cell_date = Date.parse($(this).text().replace(/(\d{2})\/(\d{2})\/(\d{4})/, '$2/$1/$3')); 
var now_date = new Date().getTime(); 
if(cell_date < now_date) 
{ 
$(this).parent('tr').addClass('past') 
} 
} 
); 
} 
); 

//]]> 
</script> 

J'ai essayé de changer .parent à .child et à peu près toutes les variantes imaginables de ce que je peux penser.

Toute aide concernant ce problème sera grandement appréciée.

Répondre

1

Il suffit de changer votre style à un <td> au lieu d'un <tr>, comme ceci:

#demotable1 td.past { 
    background: #FF0000; 
    color: #999999; 
} 

Et changer votre code pour appliquer la classe à cette cellule au lieu du parent, donc remplacer:

$(this).parent('tr').addClass('past') 

Avec ceci:

$(this).addClass('past') 
+0

Merci pour votre aide. –