JSFiddle - React, Tailwind, and code Playground

by Nechifor Vasile

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<table id="container" >
    <tr><th>Column 1</th><th>Column 2</th></tr>
    <tr>
        <td id="col_1_1" >Test 1-1</td>
        <td id="col_1_2">Test 1-2</td>
        <td id="actions_1"><button line="1" class="btn btn-danger">Edit</button></td>
    </tr>
    <tr>
        <td id="col_2_1">Test 2-1</td>
        <td id="col_2_2">Test 2-2</td>
        <td id="actions_2"><button line="1" class="btn btn-danger">Edit</button></td>
    </tr>
    <tr>
        <td id="col_3_1">Test 3-1</td>
        <td id="col_3_2">Test 3-2</td>
        <td id="actions_3"><button line="1" class="btn btn-danger">Edit</button></td>
    </tr>
</table>

JavaScript

var old_values = {},
    num_cols = 2,
    line_data = {},
    i;

$("#container").on('click',"button",function(){
    var current_line = $(this).attr('line');
    if($(this).text() == 'Edit'){
        for(i=1;i<=num_cols;i++){
            line_data[i]=$("#col_"+current_line+"_"+i).html();
            $("#col_"+current_line+"_"+i).html('<input type="text" id="col_'+current_line+'_'+i+'_input" value="'+line_data[i]+'" class="form-control" />');
        }
        old_values[current_line] = line_data;
        $('#actions_'+current_line).html('<button line="'+current_line+'" class="btn btn-success">Save</button><button line="'+current_line+'" class="btn btn-default">Reset</button>');
    }
    else if ($(this).text() == 'Save'){
        // save data
        for(i=1;i<=num_cols;i++){
            
            $("#col_"+current_line+"_"+i).html($("#col_"+current_line+"_"+i+"_input").val());
        }
        $('#actions_'+current_line).html('<button line="'+current_line+'" class="btn btn-danger">Edit</button>');
    
    }
    else
    {
        for(i=1;i<=num_cols;i++){
           
            $("#col_"+current_line+"_"+i).html(old_values[current_line][i]);
        }
        $('#actions_'+current_line).html('<button line="'+current_line+'" class="btn btn-danger">Edit</button>');
    }
});