user1400
user1400

Reputation: 1409

How to select just a row of table using jQuery

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

Answers (3)

user312650
user312650

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

rahul
rahul

Reputation: 187030

$("table.spreadsheet tr").click(function(){
    $("table.spreadsheet tr").removeClass("otherstyle");
    $(this).toggleClass("otherstyle");
});

See a working demo

Upvotes: 8

Reigel Gallarde
Reigel Gallarde

Reputation: 65264

$("tr").click(function(){

 $('tr').removeClass("otherstyle");
 $(this).toggleClass("otherstyle");

}

or

$("tr").click(function(){     

 $(this).toggleClass("otherstyle").siblings().removeClass("otherstyle");

}

Upvotes: 5

Related Questions