javascript - 追加到尚未插入文档的新节点

标签 javascript jquery

为了使我的代码简洁并减少不必要的 dom 呈现,我尝试在将其附加到文档之前构建并填充一个表。我遇到的问题是只有 div 被附加到表中,所以我最终得到一个充满 div 的表,而不是 tr 和包含 div 的 td。

我很确定这是因为当我使用 .appendTo 函数时,它没有将 td 附加到 tr,并且trtable 而是删除 div 并将其依次附加到每个 div,最后在表格中结束。

如何在附加到文档之前构建节点链?

代码:

    var playerSelect = $( "#playerSelect" );
    var playerElements = [];
    var rowCounter = 0;
    var playerTable = $("<table/>").attr("id", "playerTable");
    for (player in playerBase){
        var playerDiv = $("<div/>").addClass("player").text(player + playerBase[player].rating);
        playerDiv.appendTo("<td/>").appendTo("<tr/>").appendTo(playerTable);                   
    };
    playerSelect.append( playerTable ); 

最佳答案

.appendTo() 不接受字符串值。 $() 但是,您可以这样更改代码:

$("<tr />").append($("<td />").append(playerDiv)).appendTo(playerTable);

也就是说,这不是最干净的方法,如果您的代码中有很多这样的结构,您可能想看看模板引擎。

关于javascript - 追加到尚未插入文档的新节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208975/

相关文章:

javascript - 谷歌闭包库 : stopPropagation on components

javascript - 默认函数参数

javascript - 多个 Rhino (java) 线程操作同一个文件

javascript - ajax调用后删除元素

javascript - Karma 测试对 scope.function 内函数的调用

javascript - JQuery 中的 CSS 属性选择器

javascript - 如何使用 getJSON 读取并显示 json 二维数组?

javascript - Handsontable 未加载动态创建的列标题

javascript - jQuery 宽度函数在文本上返回 0

javascript - 调整悬停时内容的垂直对齐方式