Heim  >  Artikel  >  Web-Frontend  >  Der Unterschied zwischen remove() und detach() in jquery

Der Unterschied zwischen remove() und detach() in jquery

巴扎黑
巴扎黑Original
2017-06-25 09:53:531371Durchsuche

 jquery ist ein sehr leistungsfähiges Tool, das häufig in der Arbeit verwendet wird. Einige Methoden werden jedoch von uns immer noch ignoriert, da sie nicht häufig verwendet werden oder nicht bemerkt wurden.

Remove() und detach() sind möglicherweise eine davon. Vielleicht verwenden wir häufiger Remove(), aber detach() möglicherweise weniger. Vielleicht habe ich es nicht sorgfältig genug verwendet. Aber dieses Mal habe ich es aufgrund eines Problems in einem Projekt verwendet. Ich fand es sehr interessant, also habe ich es aufgezeichnet und mit allen geteilt.

remove(): Die offizielle Erklärung ist, dass

alle passenden Elemente aus dem DOM entfernt . Diese Methode entfernt die übereinstimmenden Elemente nicht aus dem jQuery-Objekt, sodass die übereinstimmenden Elemente in Zukunft wiederverwendet werden können. Neben der Beibehaltung des Elements selbst werden jedoch auch andere Elemente wie gebundene Ereignisse, zusätzliche Daten usw. entfernt.

Nach meinem Verständnis wurde das Element entfernt. Aber wie finde ich es wieder? Ehrlich gesagt habe ich noch nie einen Freund gefunden, der es benutzt hat. Können Sie es mir sagen, vielen Dank,

Verwendung:

Alle Absätze aus dem DOM löschen

HTML-Code:
  e388a4556c0f65e1904146cc1a846beeHello94b3e26ee717c64999d7867364b1b4a3 how are e388a4556c0f65e1904146cc1a846beeyou?94b3e26ee717c64999d7867364b1b4a3
jQuery-Code:
  $("p").remove();
Ergebnis:
  how are
Zu dieser Methode gibt es nicht viel zu sagen. Reden wir hauptsächlich über die detach()-Methode,

Offizielle Beschreibung:

Entfernen Sie alle passenden Elemente aus dem DOM. Diese Methode entfernt die übereinstimmenden Elemente nicht aus dem jQuery-Objekt, sodass die übereinstimmenden Elemente in Zukunft wiederverwendet werden können. Im Gegensatz zu „remove()“ bleiben alle gebundenen Ereignisse, angehängten Daten usw. erhalten.

Beschreibung:

Alle Absätze aus dem DOM entfernen

HTML-Code:
 e388a4556c0f65e1904146cc1a846beeHello94b3e26ee717c64999d7867364b1b4a3 how are e388a4556c0f65e1904146cc1a846beeyou?94b3e26ee717c64999d7867364b1b4a3
jQuery-Code:
  $("p").detach();
Ergebnis:
  how are
Beschreibung:

Löschen Sie den Absatz mit der Hallo-Klasse aus dem DOM

HTML-Code:
  889c467f53be0c0d4e7d0d985361b565Hello94b3e26ee717c64999d7867364b1b4a3 how are e388a4556c0f65e1904146cc1a846beeyou?94b3e26ee717c64999d7867364b1b4a3
jQuery-Code:
  $("p").detach(".hello");
Ergebnis:
  how are e388a4556c0f65e1904146cc1a846beeyou?94b3e26ee717c64999d7867364b1b4a3
Wenn wir es so betrachten, scheint es keinen Unterschied zu geben. Diese beiden Funktionen, haha. . . . Lassen Sie mich Ihnen jetzt erzählen, was mit mir passiert ist. Dann wird jeder verstehen, wie man es löst.

Ich habe hier ein Formular, eines davon ist der Registrierungscode, das heißt, jede Information hat einen unabhängigen Registrierungscode. Ohne den Registrierungscode kann die Registrierung nicht erfolgreich sein. Ich verwende das

KontrollFormularValidator von jquery zur Überprüfung. Es startet die Überprüfung, wenn die Seite geladen wird, und für CSS die Anzeige ()-Methode in jquery werden ignoriert. Ursprünglich. Dies ist kein Problem, aber der Benutzer hat eine neue Forderung gestellt, die darin besteht, eine Option hinzuzufügen, um zu bestimmen, ob der Registrierungscode angezeigt wird. Wenn er nicht angezeigt wird, überprüfen Sie das Textfeld für den Registrierungscode nicht Nachfrage.

Nachdem ich CSS Display und JQuery Hide() ausprobiert hatte, habe ich mich für Remove() entschieden. Die Überprüfung wurde gestoppt, aber als ich mich für die Überprüfung entschied, konnte der entfernte Inhalt nicht wieder hinzugefügt werden, also suchte ich nach etwas, das wieder hinzugefügt werden konnte. Zu diesem Zeitpunkt entdeckte ich

detach()。它的有什么好处呢。我下面放一代码出来

var p;
        function selectChange() {
            

            if (document.getElementById("ddl_schoolarea").value != "请选择") {

                p = $("#trlession").detach();
            }
            else {
                //table1为一个table名字
                $("#table1").append(p);
                
            }
        }

Nachdem ich diesen Code gesehen habe, glaube ich nicht, dass ich zu viel erklären muss. Jeder wird es verstehen, es ist eine sehr interessante Methode.


Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen remove() und detach() in jquery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn