jQuery addClass example
Change class name on click in jQuery
by techtricks
HTML
<div>
To see different view, resize the window
</div>
<div class="mv_table">
<div class="accordian_content">
</div>
<table id="simple_table">
</table>
</div>
CSS
.mv_table #simple_table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
.mv_table #simple_table td, .mv_table #simple_table th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
border: 1px solid gray;
}
.mv_table #simple_table tr:nth-child(even) {
background-color: #dddddd;
}
.mv_table #simple_table tr > th {
border: 1px solid gray;
background: #1b90bb;
color: #FFF;
}
/* Style the buttons that are used to open and close the accordion panel */
.mv_table .accordion {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 12px;
width: 100%;
text-align: left;
border: none;
outline: none;
transition: 0.4s;
margin: 2px;
border-radius: 8px;
}
/* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */
.mv_table .active, .accordion:hover {
//background-color: #9fc2cf;
}
/* Style the accordion panel. Note: hidden by default */
.mv_table .panel {
padding: 0 18px;
background-color: white;
display: none;
overflow: hidden;
}
.mv_table .active{
background-color: #1b90bb;
color:white;
}
.mv_table .arrow{
float:right;
}
.mv_table .darrow{
display:none;
}
.mv_table .accordian_table{
width: 100%;
}
.mv_table .accordian_table th{
text-align: left;
}
/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
.mv_table .accordian_content {
display:block;
}
.mv_table #simple_table{
display:none;
}
}
/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {
.mv_table .accordian_content {
display:block;
}
.mv_table #simple_table{
display:none;
}
}
/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {
.mv_table .accordian_content {
display:none;
}
.mv_table #simple_table{
display:table;
}
}
JavaScript
(function($) {
var small_screen_heading = "name";
var data = [
{
id: 001,
name: "Santhosh Kumar",
state: "aaa",
country: "xyz",
salary: "10,000"
},
{
id: 002,
name: "Bhaskar Reddy",
state: "bbb",
country: "xyz",
salary: "10,000"
},
{
id: 003,
name: "Karunakar Kumar",
state: "ccc",
country: "pqr",
salary: "10,000"
}
];
for (var i = 0; i < data.length; i++) {
var accordianhtml = "<button class='accordion'>"+data[i][small_screen_heading]+"<span class='arrow rarrow'>→</span><span class='arrow darrow'>↓</span></button><div class='panel'><p><table class='accordian_table'>";
var table_row = null;
var table_header = null;
for (var key in data[i]) {
//for accordian view
accordianhtml = accordianhtml+"<tr><th>"+key+"</th><td>"+data[i][key]+"</td></tr>";
if(i === 0){
table_header = table_header+"<th>"+key+"</th>";
}
table_row = table_row+"<td>"+data[i][key]+"</td>";
}
if(i === 0){
table_header = "<tr>"+table_header+"</tr>";
$(".mv_table #simple_table").append(table_header);
}
table_row = "<tr>"+table_row+"</tr>";
$(".mv_table #simple_table").append(table_row);
accordianhtml = accordianhtml+"</table></p></div>";
$(".accordian_content").append(accordianhtml);
}
$(".accordion").click(function(){
$(".panel").slideUp();
$('.rarrow').show();
$('.darrow').hide();
if(!$(this).hasClass("active")){
$(".accordion").each(function(){
$(this).removeClass('active');
});
$(this).addClass('active');
$(this).next().slideDown();
$(this).find('.rarrow').hide();
$(this).find('.darrow').show();
} else{
$(".accordion").each(function(){
$(this).removeClass('active');
});
}
});
})(jQuery);