Wenn Sie $('<input/>')
erstellen, erstellt jQuery ein input
DOM-Element für Sie.
Wenn Sie .append()
ein DOM-Element sind, löst es das Element von seiner vorherigen Position. (Siehe Geige)
Damit wird Ihr zweiter .append()
-Aufruf es von dem Ort entfernen, an dem es zuerst angehängt wurde, und es an der neuen Position platzieren.
Wenn Sie eine Zeichenfolge anhängen, wird das DOM-Element beim Anhängen erstellt.
Im ersten Fall analysiert $
Ihren HTML-Code und erstellt ein neues jQuery-Objekt, das über ein HTMLInputElement
umbrochen wird.
Grundsätzlich ist es so:
%Vor%Im zweiten Fall wird der HTML-Code jedes Mal analysiert und ein anderes jQuery-Objekt für jede Instanz generiert.
Hier ist, wie das erste Beispiel behoben werden konnte:
%Vor%Das liegt daran, dass es sich im ersten Fall auf das gleiche Element object bezieht (hängt das gleiche Element an, so dass es an eine neue Stelle angehängt wird), und im zweiten Fall hängen Sie html als String an mehrere Elemente (jedes Mal neues Element).