2010-02-02 15 views
7

Ich versuche, eine Tabellenzeile mit jQuery zu entfernen, und während es auf dem Bildschirm verschwindet und daher scheint zu funktionieren, in Firebug, kann ich immer noch den Code dafür sehen. Es gibt Formularelemente in dieser Zeile, und so möchte ich verstehen, ob die Zeile wirklich gelöscht wird oder nicht, weil ich nicht möchte, dass diese Werte übermittelt werden. Also, entfernt wirklich entfernen? Unten ist der Code, den ich benutze ... Vielleicht mache ich es falsch?jQuery ::: Entfernt wirklich entfernen?

if($('.delete')) { 
      $(".delete").live('click', function(event) { 
       $(this).closest('tr').remove(); 
      }); 
     } 

Antwort

9

Die Quelle einer Seite wird nicht mit Javascript-Funktionen aktualisiert. Wenn Sie das DOM in Firebug überprüfen, sollten Sie die Änderungen sehen können.

+0

Ich suche in firebug ... Und ich sehe immer noch den Code für diese bestimmte Entfernung dort. Also, vielleicht stimmt etwas nicht damit, wie ich es mache? Ist etwas offensichtlich, was ich gepostet habe? – phpN00b

+0

Schaust du dir das DOM an und nicht die Quelle? – cjk

+0

Zur Verdeutlichung der ck's Note wird das lebende DOM in einem Baum in Firebugs Hauptfenster geparst und strukturiert, während der Code, den Sie im HTML-Bereich oder im Script-Bereich sehen, das statische HTML ist, wie es ursprünglich geladen wurde. Wenn JS-Änderungen an der Struktur vorgenommen werden, sehen Sie eine gelbe Markierung auf dem Bereich, der geändert wird (und folglich den ganzen Baum hoch). – dclowd9901

0

Ja, jQuery remove() entfernt wirklich die Elemente aus dem DOM.

In Ihrem Code ist wahrscheinlich etwas nicht in Ordnung.

1

Es entfernt das Element vollständig aus Ihrem DOM. Ich denke, du schaust vielleicht auf das falsche Element, denn wenn es tatsächlich auf deinem Bildschirm entfernt wird, sollte Firebug die Änderung widerspiegeln.

Ihr Code sieht gut aus.

.Remove() Reference

1

Das ist richtig. Die Methode remove() entfernt die Elemente nicht. In "jQuery in Action" steht geschrieben: "Beachten Sie, dass wie bei vielen anderen jQuery-Befehlen die umbrochene Menge als Ergebnis dieses Befehls zurückgegeben wird. Die Elemente, die aus dem DOM entfernt wurden, werden weiterhin von dieser Menge referenziert (und nicht (noch für Garbage-Collection) und kann weiter mit anderen jQuery-Befehlen betrieben werden ... " Ich habe gesucht und es scheint nicht eine jQuery, die tatsächlich die Elemente entfernt. Also ich denke du solltest es mit den alten DOM JavaScript Funktionen machen.

0

Ja, tut es.

Ich spielte neulich damit. Sie können in Firebug (und anderen Browser-Debugger) sehen, dass das Element verschwindet.

Verwandte Themen