【问题标题】:Having a for loop inside a jQuery append Method在 jQuery append 方法中有一个 for 循环
【发布时间】:2018-04-22 09:54:14
【问题描述】:

我的问题
我无法找到如何在 jQuery append 方法中放置 for 循环。它应该是一个强大的,它应该就在那里,我如何格式化代码以便它工作?

我的代码

window.onload = function () {
    $(function () {
        $('#li22').append($('<table/>').append(for (var i = 0; i <= 3; i++) {'$('#li22').append($(""));'}));
    });
}

【问题讨论】:

  • @Archer 对不起。将重写它。

标签: javascript jquery html for-loop append


【解决方案1】:

像这样尝试。

$(document).ready(function () {

       var string="<table>";
        for (var i = 0; i <= 3; i++) 
        { 
           string += "what you need";
        }
        string +="</table>"
        $('#li22').append(string);
    });

【讨论】:

  • 那行不通。不仅没有功能,还有语法错误。
【解决方案2】:

您不能在函数的参数内执行代码。因此,代码的格式必须如下:

window.onload = function () {

    $(function () {

        var tableTag = $('<table><table/>');

        $('#li22').append( tableTag );

        for (var i = 0; i <= 3; i++) {

            $( tableTag ).append( "" );

        }

    });

}

【讨论】:

    【解决方案3】:

    首先,不要将for 循环直接放在append() 方法中。其次,不要将 document.ready 事件处理程序放在 window.onload 处理程序中——这毫无意义。

    此外,您要达到的目标并不完全清楚。您将table 附加到#li22,然后在#li22 上不附加任何内容并将其返回到table...?因此,以下是有关如何正确使用append() 的一般指南。

    append() 接受任意字符串,因此您应该将for 放在append() 之外,如下所示:

    $(function () {
      for (var i = 0; i <= 3; i++) {
        $('#li22').append($('<table/>'));
      }
    });
    

    或者,您可以向append() 提供一个函数,该函数返回要附加的 HTML。你可以把for放在那里:

    $(function () {
        $('#li22').append(function() {
          var html = '';
          for (var i = 0; i <= 3; i++) {
            html += '<table></table>';
          }
          return html;
        });
      }
    });
    

    【讨论】:

    • 如果我没记错的话,带有 Html 块的单个附加也提供了相当好的性能。
    • 是的,我太愚蠢了,我确实急于提出问题,但我仍然得到了这篇文章的答案,因此,你赢得了正确的分数!
    猜你喜欢
    • 2019-11-15
    • 2019-07-21
    • 2016-08-28
    • 2020-12-22
    • 2020-10-18
    • 2017-05-18
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多