3 Stimmen

Ersetzen eines Leerzeichens durch " " mit Jquery

Ich schaue mich im Internet um, aber ich finde nichts Nützliches :(

Ich habe ein Problem, das ich nicht verstehe. Ich bin sicher, dass ich etwas falsch mache, aber ich weiß nicht gut die Syntax von jQuery zu verstehen, was ist, dass ich nicht richtig tun.

Ich benutze Animationen mit JS und CSS 3, und ich habe Probleme mit Leerzeichen zwischen den Wörtern, und um dieses Problem zu lösen, muss ich einen Weg finden, um Zeichen innerhalb einer Textkette durch etwas anderes zu ersetzen. Wie ein Leerzeichen mit einem , oder als Test, dass ich versucht habe, ein " n " mit einem " xxxxx ".

Ich denke, dass ich das tue:

  1. wenn die Seite geladen wird
  2. Ändern Sie die Zeichenfolge eines beliebigen Absatzes mit der Klasse .fancy-title die den Text " n " mit einem Text " xxxxx "

Also:

$(document).ready(function(){
    for(i=0; i< myLength+1; i++){
        var charCheck = $(".fancy-title").text()[i];
        if(charCheck == "n"){
            charCheck.replace("n", "xxxxxxxx");
        }
    }
});

Aber ich erhalte eine Fehlermeldung, dass es sagte:

charCheck.replace("n", "xxxxxxxx"); es handelt sich nicht um eine Funktion

Ich verwende jquery

und andere Skripte, die auf jquery basieren, um Animationen, Rotation und Skalierung zu machen... und sie sind alle in der HEAD mit jquery zuerst zu laden.

Was mache ich falsch? Manipulation in jQuery braucht es eine bestimmte .js-Erweiterung? Ich verstand, dass war in der grundlegenden Fähigkeit von jQuery, und Blick auf andere Beispiele alle erstellt mir die gleiche Art von Fehler.

Ich habe sogar versucht

if(charCheck == "n"){
   $(".fancy-title").text()[i] == "&nbsp;"
}

Aber einfach die Änderung ist es nicht auf der Seite angewendet. Ich versuchte mit innerHTML auch :( Ich fühle mich so inkompetent...

Ich danke Ihnen im Voraus für jede Hilfe.

6voto

Ned Batchelder Punkte 342778
$(document).ready(function(){
    $(".fancy-title").each(function(i){
        var text = $(this).html();
        $(this).html(text.replace(/ /g, "&nbsp;"));
    })
});

0 Stimmen

Ich weiß, dass dieser Text schon ziemlich alt ist, aber in Zeile 4 fehlt eine schließende Klammer.

4voto

kapa Punkte 75108

Sie haben kein Problem mit dem Ersatzteil :).

$(document).ready(function(){
    $(".fancy-title").each(function () { //for all the elements with class 'fancy-title'
         var s=$(this).text(); //get text
         $(this).text(s.replace(/n/g, 'xxxxxxxx')); //set text to the replaced version
    });
});

Nur ein kurzes Beispiel, ich hoffe, es funktioniert.

0 Stimmen

Beachten Sie, dass die Funktion .replace() von Javascript mit einem String-Argument nur die erste Instanz des Strings ersetzt, nicht alle Instanzen.

3voto

sod Punkte 3694

Haben Sie den css-Stil ausprobiert white-space:pre anstelle von ' ' durch ' ' zu ersetzen? http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#white_space

0 Stimmen

Thx sod, ich denke, dass die css-Lösung besser war als erwartet. Ich war nicht der Meinung, dass mit inline-Block würde den weißen Raum verloren haben. Wie auch immer, danke an alle für die Antwort, ich teste das Skript und freue mich, neue Dinge zu lernen :) Ersetzen sieht nach einer wirklich nützlichen Funktion aus

-1voto

Michael Banzon Punkte 4759

Es scheint, dass Sie versuchen, ein einzelnes Zeichen durch eine neue Zeichenfolge zu ersetzen.

Möglicherweise können Sie das richtige Ergebnis erhalten, indem Sie die Iteration weglassen und einfach .replace für das jQuery-Objekt aufrufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X