2012-06-05 24 views
33

Ich frage mich und konnte nicht die beste Dokumentation, die den Unterschied zwischen $ .add und $ .append, wenn wir einzelne Element zum Hinzufügen oder Anhängen an einen Container haben .

Vielen Dank im Voraus

+7

* Anzahl: * http://api.jquery.com/add/; * Anfügen: * http://api.jquery.com/append/; weiter: Fügen Sie der Menge der passenden Elemente Elemente hinzu. wo als Anhängen: Einfügen von Inhalt, der durch den Parameter angegeben wird, an das Ende jedes Elements in der Menge der übereinstimmenden Elemente. ** ** B-) –

+2

_ "konnte keine beste Dokumentation bekommen" _ - Wo haben Sie gesucht? Das jQuery doco erklärt es ganz klar ... – nnnnnn

+1

Ich habe durchs Internet geschaut. und ja, JQuery-Dokumentation erklärt dies. Aber nicht jeder ist nicht so technisch, um alles zu verstehen, was dort erklärt wurde. Deshalb existieren diese Foren. @nnnnnn –

Antwort

22

Wenn ein jQuery-Objekt eine Gruppe von DOM-Elementen darstellt, erstellt die .add()-Methode ein neues jQuery-Objekt aus der Vereinigung dieser Elemente und der Elemente, die an die Methode übergeben wurden. Aber es fügt das Element nicht in das DOM ein, d. H. Mit .add() wird das Element zum DOM hinzugefügt, aber um es auf der Seite zu sehen, müssen Sie es in die Seite einfügen, indem Sie eine Methode insertion/append verwenden.

+0

Danke für die Erklärung. Es ist sehr hilfreich. –

+1

können Sie bitte weiter klären? Sie sagen "... Aber es fügt das Element nicht in das DOM ein, d. h. mit' .add() 'wird das Element zum DOM hinzugefügt ..." Nun, was ist es, wird es in das DOM eingefügt oder nicht? – chharvey

4

hinzufügen fügt nur das Element mit dem jQuery-Objekt, es in das DOM

Anfügen nicht hinzufügt fügt das Element in das DOM als das Kind.

28

Sie sind überhaupt nicht verwandt.

.Add()

Elemente hinzufügen zu dem Satz von abgestimmten Elementen.

z.B.

Wenn Sie wollen,

$('div').css('color':'red'); 
$('div').css('background-color':'yellow'); 
$('p').css('color':'red'); 

Dann die Sie tun können,

$('div').css('background-color':'yellow').add('p').css('color':'red'); 

Reference

.append()

Inhalt einfügen, angegeben durch den Parameter, bis zum Ende jedes Elements in der Menge der übereinstimmenden Elemente.

$('div').append('p'); 

wird append p auf allen ausgewählten div in dom ausgewählt.

Reference

+0

Danke für die Antwort @Jashwant. Jetzt ist das auch für mich klar. nachdem ich die Antworten bekommen habe. –

7

.add()

for example: 
<ul> 
    <li>list item 1</li> 
    <li>list item 2</li> 
    <li>list item 3</li> 
</ul> 
<p>a random paragraph</p> 

die Farbe der <li> Elemente ändern UND das <p> Element rot, könnten Sie schreiben:

$("li").css("background-color", "green"); 
$("p").css("background-color", "green"); 

oder Kondensieren des Obigen durch Verwenden von. add()

$("li").add("p").css("background-color", "green"); 

.append()

Wird erstellen ein neues Element zum DOM hinzufügen und wird als ein untergeordnetes Element für das vorhandene angegebene Element angezeigt.

<div>one</div> 
<div>two</div> 

<ol> 
    <li>item1</li> 
    <li>item2</li> 
</ol> 

$("div").append('<p>'); 

wird in Folge:

<div>one</div> 
<p></p> 
<div>two</div> 
<p></p> 

<ol> 
    <li>item1</li> 
    <p></p> 
    <li>item2</li> 
    <p></p> 
</ol> 
+0

+1 Zu gut und ordentlich konstruiert. –

+0

Warum wird an jedes Listenelement ein Absatz angehängt? Sie sind keine Divs. – chharvey

+0

@tismle: Meinst du die Farbe auf "grün" ändern? Auch das Append() Ergebnis ist falsch; Mit Append() wird ein untergeordneter Knoten hinzugefügt, aka wird das P-Element innerhalb jedes div nicht nach platziert. – brooklynsweb

Verwandte Themen