Hi, I'm trying to change the background color of an HTML table cell when the user clicks on the cell. Any ideas on how to do this? I have access to the JS Prototype library, so any suggestions for Prototype or straight Javascript would be welcome. Thanks!
+1
A:
Ugly, but demonstrates the effect:
<table>
<tr>
<td onclick="this.style.backgroundColor = 'Red';">Sample</td>
<td onclick="this.style.backgroundColor = 'Blue';">Data</td>
</tr>
</table>
Larsenal
2010-09-15 23:02:16
A:
I'm not well versed in the Prototype framework, but here's some raw Javascript that'll do what you're looking for:
var table = document.getElementsByTagName('table')[0];
if(table) table.onclick = function(e) {
var target = (e || window.event).target;
if (target.tagName in {TD:1, TH:1})
target.setAttribute('style', 'background-color: #F00');
};
Test it on jsFiddle
Kevin
2010-09-15 23:05:19
A:
You could loop over all the children of the table and add an click event to them
with prototype the code is:
$('your_table').observe('click', function(event) {
var clickedCell = event.findElement('td');
if (clickedCell) {
clickedCell.setStyle({ background: '#dfd' });
}
});
lock
2010-09-15 23:07:35