jquery: Suchen Sie eine Zeichenfolge und wickeln Sie sie in ein a-Tag?

8

Ich habe das:

%Vor%

Ich muss ein Äquivalent von .find() machen, aber für die Zeichenfolge "click here" anstelle eines Knotens muss ich sie dann in ein <a> -Tag einfügen.

Was ist der beste Ansatz mit jquery?

    
Haroldo 05.08.2010, 10:24
quelle

2 Antworten

18

Verwenden Sie :contains Filterselektor:

%Vor%

Um es in einen Link einzufügen:

%Vor%

Um den gesamten Text in einen Link einzufügen:

%Vor%

Weitere Informationen:

Sarfraz 05.08.2010, 10:28
quelle
7

Verwenden Sie kein HTML-String-Hacking. Stellen Sie sich vor, was passieren würde, wenn Sie versuchen würden, <span title="blah click here blah">...</span> durch ein <a> tag zu ersetzen ... massiv gebrochenes Markup. Und das ist nur der Anfang der Probleme.

Stattdessen iterieren Sie über die Textknoten in dem Teil des Dokuments, das Sie untersuchen möchten, suchen Sie nach Textübereinstimmungen und fügen Sie einen neuen Hyperlink mithilfe von Methoden im DOM-Stil ein.

jQuery hilft Ihnen hier nicht wirklich, da es keine Funktionen für die Verarbeitung von Textknoten bietet. Verwenden Sie stattdessen etwas wie die Funktion findText() von diese Frage und verwende splitText , um den Textknoten aufzuteilen:

%Vor%     
bobince 05.08.2010 10:48
quelle

Tags und Links