En utilisant javascript, comment puis-je obtenir la couleur d'arrière-plan d'une cellule de table lorsque je clique dessus?

Je souhaite avoir une alerte qui me montre l'arrière-plan d'une cellule de table chaque fois que je clique dessus. Je ne peux tout simplement pas trouver ou comprendre comment saisir la couleur de fond.

Ma cellule de table ressemble à ceci:

<td id="s0" onclick="selectCell(event)">0</td> 

Ma fonction selectCell ressemble à ceci:

 function selectCell(e){ alert(e.target.backgroundColor); //this gives me 'undefined' alert(e.target.bgcolor); //this gives me 'undefined' alert(e.target.bgColor); //nothing shows up. i don't believe this is a valid property //once i know i am properly grabbing the color i will do stuff with it here. } 

Mon CSS ressemble à ceci:

 #s0 { border: 1px solid; background-color: yellow; } 

Toute aide serait grandement appréciée !!

Les styles d'un nœud sont dans la propriété styles, par exemple:

 e.target.style.backgroundColor; 

Toutefois, cela ne fonctionne que pour les styles déclarés avec l'attribut de style ligne. Si CSS est assigné (comme il se doit) à l'aide d'une feuille de style, vous devrez utiliser:

 window.getComputedStyle(e.target, null).backgroundColor; 

Internet Explorer, malheureusement, ne met pas en œuvre l'option getComputedStyle() , proposant actuellement currentStyle (l'esprit, ils ne prennent pas en charge e.target , je pense, au moins dans les versions antérieures à 8?). Je n'ai pas Internet Explorer avec lequel tester, mais les documents suggèrent qu'il devrait être utilisé:

 var e = window.event ? window.event : e, elementNode = e.target !== null ? e.target : e.srcElement; elementNode.currentStyle.backgroundColor; 

Les références:

  • currentStyle .
  • Element.style .
  • window.getComputedStyle() .

Vous pouvez le faire facilement par la fonction Jquery css ()

 jQuery(document).ready(function(){ $(this).click(function () { var color = $(this).css("background-color"); alert(color); }); }); 

Pour plus de détails, regardez cet exemple