SO fiddle

Test Fiddle mainly for SO Questions

HTML

<script src="https://raw.github.com/dbunic/REDIPS_drag/master/redips-drag-min.js"></script>
<div id="drag">
    <table id="Medication" class="medications" summary="This is a summary of my tabular data." caption="Table Title">
        <colgroup>
            <col width="30" />
            <col width="30" />
            <col width="100" />
            <col width="100" />
            <col width="100" />
            <col width="30" />
            <col width="100" />
        </colgroup>
        <thead>
            <th>Drag</th>
            <th class="remove">Del
                </>
                <th>A</th>
                <th>+-x/</th>
                <th>B</th>
                <th>=</th>
                <th>C</th>
        </thead>
        <tbody>
            <tr>
                <td class="rowhandler">
                    <div class="drag row">3</div>
                </td>
                <td class="mark" id="remove"><a class="bbc" href="#">  ---  </a>
                </td>
                <td>
                    <!-- <input type="text" class="add" id="A" value="" name="test"/>--></td>
                <td class="mark">
                    <select id="sel_0" style="width: 60px">
                        <option value="sel">operator</option>
                        <option value="plus">+</option>
                        <option value="minus">-</option>
                        <option value="mulp">x</option>
                        <option value="div">/</option>
                    </select>
                </td>
                <td>
                    <!-- <input type="text" class="add" id="B" value="" name="test"/>--></td>
                <td class="mark">
                    <input type="button" class="add" id="eq__" value="  =  " name="test" />
                </td>
                <td>
                    <div class="drag clone">
                        <input type="text" class="add" id="C" value="" name="test" />
                    </div>
                </td>
...

CSS

h1, h2, h3, h4, h5, h6, body, div.dl, dt, dd, pre, form, input, p, blockquote, th, td {
    margin: 1;
    padding: 0;
}
a, a:hover, a:active {
    outline: none;
}
h1, h2, h3, h4, h5, h6 {
    font-size: 100%;
    font-style: normal;
    font-weight: bold;
}
div {
    position: relative;
}
address, caption, cite, code, dfn, em, th, var {
    font-style: normal;
    font-weight: normal;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
img, fieldset {
    border: 0;
}
img {
    -ms-interpolation-mode: bicubic;
}
body {
    font-family: helvetica, arial, sans-serif;
    font-size: 16px;
    line-height: 1.4em;
    color: #54585a;
}
h1, h2, h3, h4, p {
    margin-bottom: 24px;
}
h1 {
    font-size: 26px;
}
h2 {
    font-size: 21px;
}
a {
    text-decoration: none;
    color: #007dba;
}
a:hover {
    text-decoration: underline;
}
a:visited {
    color: #007dba;
}
ol.nav {
    list-style: none;
    margin: 0;
    padding: 10px 10px 8px 10px;
    display: block;
    border: 1px solid #cdcdc9;
}
ol.nav li {
    margin: 0 0 2px 0;
    padding: 0;
}
ol.nav li a {
    text-decoration: none;
    color: #007dba;
    display: block;
    padding: 5px;
}
ol.nav li a:hover {
    background: #e6e6e3;
}
.header {
    border-bottom: 1px solid #cdcdc9;
    padding: 20px 10px;
}
.header a.close {
    position: absolute;
    right: 20px;
    top: 50px;
    background: url(../img/icon-close.png) 0 4px no-repeat;
    padding: 0 0 0 20px;
}
.header a.close:hover {
    background-position: 0 -25px;
}
table {
    text-align: left;
    width: 100%;
    border: 0px;
    border-collapse: collapse;
    border-spacing: 0px;
    margin-bottom: 20px;
}
table thead th {
    background: #eaebe7;
    text-align: left;
    font-weight: bold;
    padding: 10px;
    border-right: 1px solid #fff;
    font-size: 13px;
}
table tbody th {
    border-bottom: 1px solid #dedfda;
    padding: 10px;
    width: 150px;
    font-size: 13px;
    font-weight: bold;
}
table tbody td {
    padding:...

JavaScript

// row incrementer
var count = 1;
var debug1 = $("#message");
window.redips = {};

// start =================================================
//$("a#add").click(function() {
$("a#add").on("click", function () {
    var tableName = "table#" + this.name;
    var $clone = $(tableName + " tr:last").clone();

    // assign unique id and name for
    $clone.find("a,input,select").each(function () {
        $(this).attr({
            id: $(this).attr("id") + count,
            name: $(this).attr("name") + count,
            value: ""
        });
    });

    $clone.find("input[type=button]").each(function () {
        $(this).attr({
            value: "  =  "
        });
    });

    $clone.find("select").each(function () {
        $(this).attr({
            id: "sel_" + count
        });
    });

    //alert($clone.find("input:text").length);
    $clone.find("input:text").remove();

    // append row to body
    $(tableName + " tbody").append($clone);

    // remove row associated with the table
    $(tableName + " td#remove a").click(function () {
        // number of rows; at least one row should always be present
        var rows = $(tableName + " tr").length;
        if (rows > 2) {
            $(this).parent().parent().remove();
        }
    });

    $('select').on('change', function () {
        var msg = $(this).val(); // or $(this).val()       this.value
        var id_tag = $(this).attr("id");
        //var cRow = parseInt(id_tag.replace("sel_",""))+100;   
        var cRow = parseInt(id_tag.substring(4)) + 0, // current row 
            but_tag = $("#eq__" + cRow).attr("id");

        //var cRow =id_tag.replace("sel_","") + 100;      
        debug1.html("in2~ " + $(this).val() + " : " + id_tag + ":" + cRow + ":Button= " + but_tag);
    });

    count++;
    redips.init();
});

// end of start =================================================
$('select').on('change', function () {
    var msg = $(this).val(); // or $(this).val()       this.value
    var...