我可以使用html和Javascript为表动态创建下拉行吗?

时间:2018-05-01 20:39:50

标签: javascript html twitter-bootstrap dynamic

我已动态创建了一个表,但现在我想按需创建一个下拉行。我为每一行都有一个onclick处理程序。点击后,这一行应该向下移动一些东西(比如一个隐藏的div,但遗憾的是这些不能在动态设置中轻松创建,因为在创建行时没有办法分配唯一的id。这在Javascript / jQuery中是否可行?或者,最好是twitter bootstrap?

function buildHtmlTable(portalData, tablename) {
    var columns = [];
    var headerTr$ = $('<tr/>');
    var n = 0;
    if (tablename == "order-table") {
        document.getElementById("dist-name").innerText = JSON.parse(JSON.stringify(portalData[0], null, 2))["Company Name"];
        n = 1;
    }
    for (var i = 0 ; i < portalData.length ; i++) {
        var rowHash = portalData[i];
        for (var key in rowHash) {
            if ($.inArray(key, columns) == -1) {
                columns.push(key);
                headerTr$.append($('<th/>').html(key));
            }
        }
    }
    $('#' + tablename).append(headerTr$);
    for (i = 0 ; i < portalData.length ; i++) {
        var row$ = $('<tr/>');
        for (var colIndex = n ; colIndex < columns.length ; colIndex++) {  // n is how many columns to drop, based on table name
            var cellValue = portalData[i][columns[colIndex]];
            if (cellValue == null) {
                cellValue = "";
            }
            row$.append($('<td/>').html(cellValue));
        }
        $('#' + tablename).append(row$);
    }

    // Drop unnecessary columns
    for(i = 0 ; i<n; i++) {
        $("#order-table").find('td,th').first().remove();
    }
    if (tablename == "order-table") {
        var tablerows = document.getElementsByTagName('tr');
        for (var x in tablerows) {      
            tablerows[x].classList.add("clickable");
            tablerows[x].setAttribute(data-toggle,"collapse");
            tablerows[x].setAttribute(data-target,"");
        }   
    }
}

0 个答案:

没有答案