javascript - jQuery 动态 dom 元素内的每个循环

标签 javascript jquery html

我正在生成一个 dom 元素 <div>使用下面的代码:

jQuery

$('<div/>', {
    'id': 'myid',
    'html': '<table class="table">'
    + '<tr><th>Heading</th><th>Heading</th><th>Heading</th></tr>'

    +'</table>'
}).appendTo($body);

一切都很好。我想循环遍历我的数据以创建实际的表行,但我得到了实际的输出(我认为这是有道理的)。只是不知道如何不这样做。

例如:

jQuery

$('<div/>', {
    'id': 'myid',
    'html': '<table class="table">'
    + '<tr><th>Heading</th><th>Heading</th><th>Heading</th></tr>' +
        $.each(data.thing, function(i, val){
         '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
        });                                      
    +'</table>'
}).appendTo($body);

但是,我得到的结果是:

HTML

[object Object],[object Object],[object Object],[object Object],[object Object],[object    
Object],[object Object],[object Object]

Heading Heading Heading

最佳答案

$.each() 返回它所作用的对象(data.thing,此处)。您将看到它的字符串化版本。

您不能真正将循环作为数据定义的一部分。最好事后这样做:

var table = $('<table class="table">' +
                 '<tr><th>Heading</th><th>Heading</th><th>Heading</th></tr>' +
              '</table>');

$.each(data.thing, function(i, val){
  table.append( '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>' );
});

$('<div>').
  attr('id', 'myid').
  append(table).
  appendTo($body);

示例:http://codepen.io/paulroub/pen/dvnKE

关于javascript - jQuery 动态 dom 元素内的每个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25212706/

相关文章:

javascript - 使用 JavaScript 获取所选下拉项的值的正确方法是什么?

javascript - Bootstrap Carousel 图像未正确对齐

javascript - 你如何在 JS 中从 JSON 访问数组中的对象?

javascript - jQuery如何删除附加的音频标签

javascript - javascript 回调中错误参数的更正确位置是什么?

javascript - Jquery - $.GET 放置在最近的 Div 中

javascript - timeago.js timeago 函数内联

html - div 标签内的表格溢出到 div 外部

html - 避免滚轮劫持嵌入式 youtube/flash 视频

javascript - 如何使用两个字符串数组来构建一个将它们组合在一起的数组?