JSFiddle - React, Tailwind, and code Playground

by Flavors

HTML

<div id="tableau">
				<table>
					<thead> <tr class="en_tete"> <th></th> <th>Marque</th> <th>Modele</th> <th>Couleur</th> <th>Nb Options</th> </tr> </thead>
					<tbody>
                        <TR class="ligne_tableau_1">
                            <TD rowSpan="2"><INPUT type="checkbox" name="choix" value="1" /></TD>
                            <TD rowSpan="2">citroen</TD>
                            <TD rowSpan="2">picasso</TD>
                            <TD>blanc</TD>
                            <TD>2</TD>
                        </TR>
                        <TR class="ligne_tableau_1">
                            <TD>bleue</TD>
                            <TD>18</TD>
                        </TR>
                        <TR class="ligne_tableau_2">
                            <TD rowSpan="2"><INPUT type="checkbox" name="choix" value="1" /></TD>
                            <TD rowSpan="2">peugeot</TD>
                            <TD rowSpan="2">208</TD>
                            <TD>rouge</TD>
                            <TD>2</TD>
                        </TR>
                        <TR class="ligne_tableau_2">
                            <TD>grise</TD>
                            <TD>5</TD>
                        </TR>
                        <TR class="ligne_tableau_3">
                            <TD rowSpan="2"><INPUT type="checkbox" name="choix" value="1" /></TD>
                            <TD rowSpan="2">porshe</TD>
                            <TD rowSpan="2">boxer </TD>
                            <TD>blanche</TD>
                            <TD>2</TD>
                        </TR>
                        <TR class="ligne_tableau_3">
                            <TD>noire</TD>
                            <TD>10</TD>
                        </TR>
                        <TR class="ligne_tableau_4">
                            <TD rowSpan="3"><INPUT type="checkbox" name="choix" value="1" /></TD>
                            <TD...

CSS

html, body
{
	height:100%;
}



table
{	
	margin-top:40px;
	margin-left:20px;
	text-align:center;

	border-collapse:collapse;
}
td, th
{
	padding:3px;
	border: 1px solid black;
	empty-cells:hide;
}
label
{
    display: block;
    width: 150px;
    float: left;
}

JavaScript

$(this).removeClass			
				//Fonction JS pour selectionner les lignes (coche la case et change la couleur
					$('tbody').on( 'click', 'tr', function () //Lors d'un clic sur une ligne du tableau mais pas sur l'en-tête
				{
					$classe = $(this).attr('class')//On recupére le nom de la classe de la ligne sur laquelle on a cliqué (plusieur lignes peuvent avoir la même classe elles sont rangées dans l'ordre croissant des "ligne_tableau_x") la classe des lignes a été mise en place pour la selection avec rowspan
					
						$classe= "." + $classe;//On concaténe le nom de la classe récupéré pour le formaté "ligne_tableau_x" -> ".ligne_tableau_x"
						alert($classe);
						if($(this).hasClass("selected"))
						{
							alert("selected");
							$($classe).toggleClass("selected");
							$($classe).css("background-color","transparent");//On change la couleur de la ligne (toute la hauteur du rowspan)
						}
						else//Si la case n'est pas cochée
						{
							alert("not selected");
							$($classe).toggleClass("selected");
							$($classe).css("background-color","#e9f8ff");//On change la couleur de la ligne (toute la hauteur du rowspan)
						}
						
						alert($classe);
				});