Wrap String mit HTML

Jan-Frederik Stieler

Monsterator
Moderator
Hi,
ich versuch im Text vorkommende Registry Zeichen mit sup auszuzeichnen.
Javascript:
$('body').find('*:contains("®")').each(function(){
            if($(this).parent('sup')){
                $(this).html(function(_, html) {
                    return html.split('®').join('<sup>®</sup>');
                });
            }
        });
Nun stand ich vor dem problem das ein paar dieser Zeichen schon ausgezeichnet waren.
Also dachte ich ich verschachtel die Abfrage mit einen if und frag ob das Eleternelement des Strings mit dem sup ausgezeichnet ist. Leider funktioniert das zumindest nicht so wie ichs gemacht habe.
Ich bekomm teilweise eine doppelte Auszeichnung.

kann mir wer auf die Sprünge helfen?

Viele Grüße
 
Hi,
bin etwas weiter gekommen:

Javascript:
var         copyright = "<sup>®</sup>";

$('body').find('*:contains("®")').each(function(){
       if(! copyright.match(/\<sup.+\>/)) {   
              $(this).html(function(_, html) {
                     return html.split('®').join('<sup>®</sup>');
              });           
       }
});
Aber immer noch nicht am Ergebnis.
Wenn ich das ! hinzufüge um nur die ohne sup zu erreichen ist das Ergebnis keins.
Wenn ich das ! weg nehme dann werden alle ® ausgezeichnet, leider auch die welche schon ein <sup> haben.

Grüße
 
Dein String copyright ist doch unveränderlich und entsprechend ist das Ergebnis des match und damit des if immer gleich. Müsstest Du nicht das match und das if auf das html von $(this) anwenden?
 

Neue Beiträge

Zurück