2014-09-25 100 views
0

我很干燥,根据“n”的值动态添加行项目;即使循环运行多次,jQuery也只会追加一次。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"); 
} 
+0

'counter.append(dot.clone());'。如果您通过'.append'作为Dom/JQuery元素,它将简单地重新定位它。 – Stryner 2014-09-25 20:37:27

+0

你能发布你的html代码吗? – 2014-09-25 20:40:05

回答

0

您需要每次添加一个“新”的元素,你可以通过移动点到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"); 
} 
0

我认为你需要把点转换成字符串做到这一点,否则你试图不止一次地为它添加一个独特的元素。

0

我很感激帮助。 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"); 
}