jQuery: Umgebendes HTML Element (Wrapper) entfernen und Inhalte beibehalten
Heute ein Mini-Script für die JQuery Freunde.
Ziel war es, ein Element von seinem umgebenden HTML-Element freizustellen, dabei jedoch die Inhalte beizubehalten.
Lösung war für mich das folgende Script:
- /**
- * Entfernt das äußerste Wrapper-Element innerhalb des Selektors.
- * Beispiel: <a href="../target.html"><strong>Content</strong></a> ==> <a href="../target.html">Content</a>
- */
- function removeChildWrapper(selector){
- $(selector).each(function(){
- $(this).html($(this).children().html());
- });
- }
Vielleicht hilft es ja dem ein oder anderen auch bei derselben Problemstellung?
Oder habt ihr eine bessere Lösung, ggf. sogar eine passende jQuery Methode?
Ich freue mich über Anregungen und Verbesserungen.
Julian Pustkuchen ist passionierter Software- & Webentwickler mit den Schwerpunkten Softwaredesign, Objektorientierung, Ablaufoptimierung und Usability bei webks. Ein weiterer Schwerpunkt ist die Entwicklung im CMS Drupal.
Er besitzt einen Abschluss als B.Sc. Wirtschaftsinformatik (dual) und studiert derzeit für seinen Abschluss als Master of Science Wirtschaftsinformatik.
Entwickelt Julian gerade keine Software, fährt er Ski, Mountainbike, spielt Badminton, segelt oder verbringt Zeit mit Freunden.
Dieser Blog dient als sein "öffentlicher Notizblo(ck/g)".
Neueste Blogeinträge
-
08.05.2012 - 17:41
-
03.05.2012 - 18:53
-
28.03.2012 - 10:28
Tags in Blogeintrag - Kategorie
Webbasierte Lösungen? Machen wir!
webks: websolutions kept simple
http://www.webks.de






Comments
http://api.jquery.com/unwrap/
http://api.jquery.com/unwrap/ ?
Hey, vielen Dank für den
Hey, vielen Dank für den Hinweis, das ist ja schon fast (vielleicht!) peinlich, dass ich das nicht gefunden habe.
An dieser Stelle ging es allerdings direkt um das Elternelement eines Text-Node. Ich werde morgen direkt mal testen, ob das dort auch funktioniert.
Beispiel:
<-- Strong entfernen! Wie lautet der Selektor mit unwrap?
Vielleicht:
?
Hat hier jemand Erfahrung?
Also spontan bekomme ich für
Also spontan bekomme ich für Textnodes keine funktionierende Lösung hin. Habt ihr eine?
(Ist dann erstmal doch nicht so peinlich, hoffe ich)
Eine kurze Alternative zu meiner Lösung ist aber vielleicht?
$('strong').replaceWith(this.
$('strong').replaceWith(this.childNodes);Das müsste den Zweck erfüllen
In meinem Test werden dadurch
In meinem Test werden dadurch gerade die Texte (Textnode Inhalte) auch entfernt. Klappt also nicht. Kannst du das Problem bestätigen?
Laut jQuery Api sollte sowas
Laut jQuery Api sollte sowas auch funktionieren. Aber ich hab jetzt weder das noch das letzte selbst probiert.
$('strong').contents().unwrap();Post new comment