Ich versuche, Leerraum zwischen den Tags zu entfernen, so dass childNodes nur diese Tag-Knoten und nicht auch die White-Space-Knoten enthalten. Hier ist mein Code:
%Vor%Und hier ist der JS-Code:
%Vor% Aber wenn ich parentHTML
alarmiere, bekomme ich die gleiche alte Zeichenfolge.
Es ist (nicht, siehe nach der Regel), weil Strings unveränderlich sind, denke ich, und Sie setzen das innerHTML des übergeordneten Elements auf genau die gleiche Zeichenfolge, die Sie zuvor von ihm abgerufen haben.
Stattdessen würde ich vorschlagen:
%Vor% In Bezug auf den Kommentar von jfriend00 (unten) scheint der reguläre Ausdruck das Problem gewesen zu sein, das \n
stimmt nicht mit dem gelieferten Muster überein, daher erfüllt die folgende Änderung die Anforderungen:
Referenzen:
In den meisten Fällen empfehle ich, Leerzeichen von:
zu entfernen>
character <
character Es gibt zwei Fälle, an die ich denken kann, wo dies nicht das bringt, was Sie wollen, und dies sind die gleichen zwei Fälle, die sich auf die weniger aggressiven Lösungen auswirken.
Der leere Bereich zwischen inline-block
elements ist eigentlich ein beabsichtigter oder erwarteter Teil des Layouts. Wenn dieser Bereich auf null Zeichen reduziert ist, wird der implizite Abstand zwischen den Elementen entfernt. Dies kann vermieden werden, indem meine Regex unten durch " "
ersetzt wird.
Meine ursprüngliche Antwort wurde aktualisiert, um Leerzeichen in <script>
, <style>
, <pre>
oder <textarea>
tags beizubehalten. Alle außer <pre>
sind CDATA, was bedeutet, dass der Inhalt kein HTML ist und solange geparst wird, bis das schließende Tag gefunden wird, was bedeutet, dass die Regex eine vollständige Lösung ist. Wenn ein <pre>
verschachtelt ist oder die white-space
CSS-Eigenschaft verwendet wird, wird dadurch Ihr Inhalt nicht beibehalten.
Die Lösung:
%Vor%Ich bin auf diesen Thread gestoßen, weil ich nach einer Lösung suchte, um Lücken um divs zu beseitigen, die durch Leerzeichen in der HTML-Quelle oder Zeilenumbrüche in meinem Fall verursacht werden.
Bevor ich erkannte, dass Leerraum diese Lücken verursachen konnte, war ich verrückt geworden, um sie loszuwerden. Ich möchte meine HTML-Quelle für die Lesbarkeit formatiert halten, daher ist die Komprimierung des Codes keine gute Lösung für mich. Auch wenn ich es so behandle, behebt es nicht divs, die von Google und anderen Anbietern generiert werden.
Ich habe damit begonnen, die folgende Funktion zu erstellen und sie in body onload aufzurufen.
%Vor%Dies schien perfekt zu funktionieren, aber leider bricht es das Google-Suchfeld, das ich in meiner Fußzeile habe.
Nachdem ich viele Variationen des Regex-Musters ohne Erfolg ausprobiert hatte, fand ich diesen Regex-Tester bei Ссылка . Soweit ich sagen kann, tut das folgende Muster, was ich brauche.
%Vor%Das heißt, die Funktion brach immer noch das Suchfeld. Also habe ich es in eine jQuery Document Ready-Funktion umgewandelt. Jetzt funktioniert es und bricht das Suchfeld nicht.
%Vor%Tags und Links javascript regex whitespace