Reputation: 1409
I have created a table on my application same following code
<table class="spreadsheet">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
</tr>
</table>
I select a row by click with following jQuery code
$("tr").click(function(){
$(this).toggleClass("otherstyle");
}
and my css is
tr.otherstyle td
{
background-color: #d1db3e;
color:#000;
}
I would like when I click on a row, other rows be unselected, and just one row be selected.
How we could create this?
Upvotes: 3
Views: 3831
Reputation:
For sake of performance, I'd change rahul's answer to
$("table.spreadsheet tr").click(function(){
$("table.spreadsheet tr").removeClass("otherstyle");
$(this).addClass("otherstyle"); // avoid checking if it has the class "otherstyle"
// because it does not
});
Not that'd be a real kill, but hey, shouldn't we always write fast/optimized code?
Upvotes: 2
Reputation: 187030
$("table.spreadsheet tr").click(function(){
$("table.spreadsheet tr").removeClass("otherstyle");
$(this).toggleClass("otherstyle");
});
See a working demo
Upvotes: 8
Reputation: 65264
$("tr").click(function(){
$('tr').removeClass("otherstyle");
$(this).toggleClass("otherstyle");
}
or
$("tr").click(function(){
$(this).toggleClass("otherstyle").siblings().removeClass("otherstyle");
}
Upvotes: 5