2014-11-19 11 views
6

Ich möchte Elemente nach dem letzten Element hinzufügen. Mein aktueller CodejQuery einfügen nach dem letzten Element

<div class="find"><div id="FirstElement"> /*First element loaded first */ </div><div> 

$('#AddNextElement' + id).click(function (e) { 
$('<div id="NextElement' + id +'">' + /*Add after the last element*/ + '</div>').insertAfter($("#FirstElement")); 

}

Aktuelle fügt es erst nach dem ersten Element:

Ich möchte es hinzufügen nach dem letzten Element jedes Mal: ​​

Ich habe diese Links gefolgt und ich habe nicht das finden, was ich suche:

jQuery insertAfter last item

insertAfter specific element based on ID

jQuery: Add element after another element

Vielen Dank im Voraus !.

Wie ich es fest:..

$('#AddNextElement' + id).click(function (e) { 
$('<div id="NextElement"' + id +'>' + /*Add after the last element*/ + '</div>').insertAfter($("#FirstElement").parent().find('.Finder').last()); 

}

ich die .parent gefunden() finden ('finden') letzte(); dann legen Sie nach den letzten

+2

Warum nicht können Sie einfach [ '.append()'] (http://api.jquery.com/append/)? – Satpal

+1

teilen Sie Ihre html auch –

+0

'.append()' wird Ihre Arbeit erledigt –

Antwort

11

Nur müssen Sie last() Methode

$('<div id="NextElement"' + id +'>' + /*Add after the last element*/ + '</div>') 
.insertAfter($('[id^="NextElement"]').last()); 
+0

Ich habe versucht, .last() hinzuzufügen, und ich bekomme immer noch das gleiche Ergebnis! – Norris

+0

hast du [id^= ...? –

+0

Du hattest recht mit der .last() ... Ich muss die Eltern finden und dann die letzte finden. Vielen Dank – Norris

0

das letzte Element im DOM finden, in Ihrem Fall würde es NextElementxx "und dann 'nach' verwenden:

$('#NextElement2').after(..new stuff..); 
1

Wie wäre es, eine Klasse zu allen Elementen hinzuzufügen? Es wird leichter sein, die letzten zu finden:

$('.element-class:last').after('<div class="element-class" id="NextElement"' + id +'>' + /*Add after the last element*/ + '</div>'); 

Das bedeutet natürlich, dass Ihr erstes Element auch die Klasse haben muss:

<div class="element-class" id="FirstElement"> /*First element loaded first */ </div> 
0

einen Weg, um das letzte Element zu speichern ist.

<div id="FirstElement"> /*First element loaded first */ </div> 

var lastElement = $('#FirstElement'); 

$('#AddNextElement' + id).click(function (e) { 
    var element = $('<div id="NextElement"' + id +'>' + /*Add after the last element*/ + '</div>')); 
    element.insertAfter(lastElement); 
    lastElement = element; 
} 
1

HTML:

<div id="FirstElement"> First element loaded first </div> 

<div id="AddNextElement">Click me</div> 

JS:

var current = 0; 
$('#AddNextElement').click(function (e) { 
    var $el = (current == 0) ? $("#FirstElement") : $("#NextElement"+current); 
    current++; 
    $('<div id="NextElement' + current +'">Other element '+current+'</div>').insertAfter($el); 
}); 

Versuchen Sie, sich auf jsfiddle

0

Sie unter Code versuchen kann, wird es die neue div nach dem letzten „Next hinzufügen "div

JS-Code:

$(function(){ 
    $('#AddNextElementButton').on("click", function (e) { 
     var id = $("[id^='NextElement']").length ? $("[id^='NextElement']").length+1 : 1; 

     if($("[id^='NextElement']").length){ 
      $('<div id="NextElement'+ id +'">Add after the last element</div>').insertAfter($('[id^="NextElement"]').last()); 
     } else { 
      $('<div id="NextElement'+ id +'">Add after the last element</div>').insertAfter($('#FirstElement')); 
     } 
    }); 
}); 
Verwandte Themen