【问题标题】:jQuery: append multiple elementsjQuery:附加多个元素
【发布时间】:2014-11-20 18:09:39
【问题描述】:

我正在根据“n”的值动态添加订单项; jQuery 只会追加一次,即使循环运行多次。

关于如何附加“n”个订单项的建议?

var t = $(this);
var counter = $("<ol class='slide-counter'></ol>");
var dot = $("<li></li>");

if (n > 1) {
    t.append(counter);
    for (var i = 0; i < n; i++) {
        counter.append(dot);
    }
    $(".slide-counter li:first-child").addClass("active");
}

【问题讨论】:

  • counter.append(dot.clone());。如果您传递 .append 一个 Dom/JQuery 元素,它将简单地重新定位它。
  • 你能发布你的html代码吗?

标签: jquery for-loop append


【解决方案1】:

您每次都需要添加一个“新”元素,您可以通过将点移到 for 循环中来做到这一点

var t = $(this);
var counter = $("<ol class='slide-counter'></ol>");

if (n > 1) {
    t.append(counter);
    for (var i = 0; i < n; i++) {
        var dot = $("<li></li>");
        counter.append(dot);
    }
    $(".slide-counter li:first-child").addClass("active");
}

【讨论】:

    【解决方案2】:

    我认为您需要将点转换为字符串,否则您会多次尝试向其中添加唯一元素。

    【讨论】:

      【解决方案3】:

      感谢您的帮助。 Ninsly 的建议使其奏效,但 DaveB 的回答也奏效了。

      这是我最终使用的...

      var t = $(this);
      var counter = $("<ol class='slide-counter'></ol>");
      var dot = $("<li></li>");
      
      if (n > 1) {
          t.append(counter);
          for (var i = 0; i < n; i++) {
              counter.append(dot.clone());
          }
          $(".slide-counter li:first-child").addClass("active");
      }
      

      【讨论】:

        猜你喜欢
        • 2010-12-21
        • 2017-01-16
        • 2011-05-04
        • 2012-05-24
        • 2012-08-20
        • 1970-01-01
        • 2014-12-26
        • 1970-01-01
        • 2012-06-29
        相关资源
        最近更新 更多