jQuery entfernt rekursiv leere untergeordnete Elemente

8

Ich habe eine verschachtelte Menge von HTML-Tags und ich möchte alle Tags und ihre Kinder ohne Text löschen.

Beispiel:

%Vor%

Ich möchte also Bereiche mit Bildern und Text bleiben und andere verlassen.

Ich brauche das Ergebnis nach meiner Funktion :

%Vor%

Ich habe herausgefunden, dass dies rekursiv entweder durch JavaScript oder jQuery mit seiner 'Methode .children () geschehen soll. Hier ist mein Code, den ich verwenden wollte, aber ich kann mir nicht vorstellen, wie man Rekursion erstellt:

%Vor%

Dieser Code ist kaputt, löscht leere Felder und lässt sie leer ... Wie bekomme ich mein Ergebnis mit Rekursion?

BEARBEITET

Hier ist mein Beitrag: Ссылка

EDITED 2 mal

Ich habe einen Fehler in der richtigen Antwort gefunden, aber er ist klein. Wenn ich Code wie diesen habe:

%Vor%

Ich nehme an, dass es zu folgendem Ergebnis kommt:

%Vor%

previous "Korrekte" Antwort auf meine Frage ergab falsches Ergebnis bei <span> <br> Some text</span> . Andere Antworten waren falsch nach dem Testen ein bisschen.

Siehe mein JSfiddle: Ссылка

    
Feanor 25.10.2012, 13:42
quelle

6 Antworten

2
%Vor%

Verwendung von:

%Vor%

Blätter:

%Vor%

Ссылка

    
Esailija 25.10.2012, 15:59
quelle
2

Sie können dies ohne Rekursion versuchen, indem Sie jedes verwenden. Suchen Sie auch nach nichttexthaltigem Tag, wie zB img

%Vor%

Sie können $(this).has('img').length ==0 für Eingabe, Iframe oder andere nicht texthaltige Tags wie $(this).has('img, input, iframe').length ==0

ändern     
Yograj Gupta 25.10.2012 14:07
quelle
2

Dies ist eine sehr schnelle und schmutzige Art, Ihr Problem zu lösen

%Vor%     
Simon West 25.10.2012 14:15
quelle
1

Das sollte es tun. Aber das wird auch das Bild entfernen. Sie müssen eine Bedingung hinzufügen, um das Bild nicht zu entfernen.

%Vor%     
specialscope 25.10.2012 14:07
quelle
1
%Vor%

Und wenn Sie die Pausen entfernen möchten, fügen Sie dies vor jeder Anweisung hinzu:

%Vor%     
Ruben-J 25.10.2012 14:21
quelle
1

Sie können die Filterfunktion verwenden, um die benötigten Elemente zu erhalten, anstatt zu versuchen, das zu finden, was Sie nicht brauchen. Klonen Sie dann und fügen Sie sie Ihrem div hinzu

%Vor%

Ссылка

    
ᾠῗᵲᄐᶌ 25.10.2012 14:14
quelle

Tags und Links