How to Create HTML table with fixed header but dynamic column

后端 未结 2 1206
小鲜肉
小鲜肉 2021-01-29 11:51

I have two HTML buttons, one named 3days and other named week. Based on the click of any of these buttons I need to create a dynamic table with Fixed Headers but dynamic column.

相关标签:
2条回答
  • 2021-01-29 12:19

    You want something like this:

    HTML

    <div id="table">
        <table>
            <thead>
                <tr>
                    <th>Column A</th>
                    <th id="flex-header">Column B</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td></td>
                    <td></td>
                </tr>
            </tbody>
        </table>
    </div>
    <button value="3">3</button>
    <button value="7">7</button>
    

    JS

    $(function () {
        $("button").click(function (e) {
            var cols = $(this).val();
    
            // You'll want to do something here to get the column data
            var data = $("<tr></tr>").append($("<td>Col 0</td>"));
            for (i = 0; i < cols; i++) {
                data.append($("<td>Col " + (i + 1) + "</td>"));
            }
            $("#flex-header").prop("colspan", cols);
            $("#table table tbody").html("").append(data);
        });
    });
    

    jsfiddle

    This will allow you to change around the number of columns easily. Of course, there are other ways to do it (like the other answer with toggling tbody elements) but this should give you a little flexibility with the column counts.

    EDIT
    Here is an updated jsfiddle with the table toggle behavior.

    0 讨论(0)
  • 2021-01-29 12:25

    Updated Code:

       $("table").hide();
    $("#3").click(function(){
        $("table").show();
        $("th:gt(2)").hide();  
        $("td:gt(2)").hide();  
    });
    
    $("#7").click(function(){
         $("table").show();
        $("th:lt(7)").show();  
        $("td:lt(7)").show();  
    });
    

    Demo: http://jsfiddle.net/hsakapandit/3kUjR/2/

    0 讨论(0)
提交回复
热议问题