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

我可以使用html和Javascript为表动态创建下拉行吗,javascript,html,twitter-bootstrap,dynamic,Javascript,Html,Twitter Bootstrap,Dynamic,我已经动态创建了一个表,但现在我想根据需要创建一个下拉行。对于每一行,我都有一个onclick处理程序。单击后,此行应该向下放置一些内容(如隐藏的div),但不幸的是,这些内容无法在动态设置中轻松创建,因为在创建行时无法分配唯一的id。在Javascript/jQuery中是否可能这样做?或者,最好是在推特引导中 function buildHtmlTable(portalData, tablename) { var columns = []; var headerTr$ = $

我已经动态创建了一个表,但现在我想根据需要创建一个下拉行。对于每一行,我都有一个onclick处理程序。单击后,此行应该向下放置一些内容(如隐藏的div),但不幸的是,这些内容无法在动态设置中轻松创建,因为在创建行时无法分配唯一的id。在Javascript/jQuery中是否可能这样做?或者,最好是在推特引导中

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,"");
        }   
    }
}
函数buildHtmlTable(portalData,tablename){
var列=[];
var headerTr$=$('');
var n=0;
if(tablename==“订单表”){
document.getElementById(“dist name”).innerText=JSON.parse(JSON.stringify(portalData[0],null,2))[“Company name”];
n=1;
}
对于(变量i=0;i对于(i=0;i为什么您不能在创建行时创建一个唯一的id?查看您的代码会有很大帮助,因为所述行不存在。其想法是使用详细信息窗格创建不可见的div,然后使用ajax调用,当我单击该行时,所述div会像一个手风琴表一样出现在其下方并进行后端查询。因此在
portalData
for循环您不能添加任何类型的关于它所持有的数据的标识符?比如在
行$.attr(“id”,“myID”)
的前面添加
行$.append($('').html(cellValue))
如果我不知道传入行的数量,我将如何动态生成唯一ID?顺便说一句,如果你能在这里给我一个可靠的答案,请将其作为答案发布,以便我可以接受:)您正在循环以创建行。每个迭代都有一个计数器,该计数器在该循环的
上下文/持续时间中是唯一的,对吗?在迭代编号前添加一个字符串和下划线(例如,第二次循环的“mytablerow_2”),并且您有一个唯一标识符。