2014-09-25 164 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"); 
}