JQuery: Wie ersetzt man Text NACH einem verschachtelten Tag?

8

Ich versuche, die jQuery-Anweisung zum Umbenennen von "Apple" mit "orange:"

herauszufinden %Vor%

Kann das leicht gemacht werden?

    
Pete Alvin 13.06.2010, 01:41
quelle

4 Antworten

11

Ich habe die # aus der ID entfernt, da es kein gültiges ID-Zeichen ist.

Wenn das der Fall ist, versuchen Sie Folgendes:

Live-Beispiel: Ссылка

%Vor%

.contents() gibt alle untergeordneten Knoten des Elements einschließlich Textknoten zurück.

Der Code greift dann den letzten -Element -Knoten (der ein Textknoten ist) und aktualisiert sein nodeValue , wodurch Sie den Wert eines Textknotens aktualisieren.

user113716 13.06.2010, 01:49
quelle
6

patrick hat mich dazu gedrängt, aber meine Lösung ist etwas dynamischer, weil sie den Text irgendwo auswählen würde, selbst wenn es Tags auf beiden Seiten gäbe:

%Vor%

Dies geschieht, indem der Inhalt gefiltert wird, so dass nur Textknoten übrig bleiben, und der erste nodeValue in "orange" geändert wird.

Ссылка

    
Andy E 13.06.2010 01:55
quelle
1

id="#alvin" ist keine gültige Syntax, '#' wird als Teil eines Selektors für jQuery oder in CSS verwendet.

Ersetzen Sie für dieses sehr begrenzte Beispiel "Apfel" durch "Orange". Ich würde eigentlich einfach% code% lesen und es neu schreiben. Ich benutze nicht einmal jQuery dafür.

%Vor%

Ich habe kein jQuery verwendet, da jQuery keine sauberen Methoden zur Auswahl von streunenden Textknoten bietet. Was passiert also, wenn wir alle untergeordneten Textknoten in Spannen einschließen? Wir könnten das tun:

%Vor%

Auf diese Weise bleibt uns die Struktur:

%Vor%

Dann können wir den benachbarten Selektor innerHTML verwenden, um dies zu erreichen: + bedeutet ins+span nach <span> :

%Vor%     
artlung 13.06.2010 01:55
quelle
0

Eine andere Möglichkeit (nicht sehr hübsch):

%Vor%

Bearbeiten: Hinzugefügt wurde das $ am Ende von Apple. Danke Patrick.

    
Gert Grenander 13.06.2010 02:04
quelle

Tags und Links