2014-09-25 3 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

+0

Вы можете разместить свой html-код? –

ответ

0

Вы должны добавить «новый» элемент каждый раз, вы можете сделать это, перемещая точку в для цикла

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"); 
} 
Смежные вопросы