Ik wil Javascript replace () gebruiken om html-tags toe te voegen (maar deze worden als tekenreeksen geretourneerd)

Ik heb een eenvoudige javascript-functie die het "y" -teken binnen een span.certain_class met een "i" vervangt:

$(document).ready(function() {
$('span.certain_class').each(function() {
    $(this).text($(this).text().replace(/y/ig, function(s) {
        return (s === 'Y' ? 'I' : 'i');
    }));
});

});

Het probleem dat ik heb is dat ik het vervangen personage wil omspannen met een reeks:

i

Wanneer ik dit doe, drukt de browser de tags af als tekenreeksen, in plaats van ze te parseren als HTML-code.

Kan iemand me helpen dit op te lossen?

0

4 antwoord

Proberen

$(this).html($(this).text().replace........

Dat maakt het resultaat parseren als HTML in plaats van platte tekst.

2
toegevoegd
Boom! Dat deed het. Bedankt.
toegevoegd de auteur emersonthis, de bron

Gebruik $ (this) .html (...) in plaats van .text() om de inhoud in te stellen. Misschien wilt u ook html gebruiken bij het lezen van de inhoud die moet worden vervangen (afhankelijk van wat ze in uw scenario zijn).

1
toegevoegd

U moet in staat zijn om de eerste aanroep van text() te wijzigen naar een aanroep van html() :

$(this).html($(this).text().rep...
1
toegevoegd
$(document).ready(function() {
    $('span.certain_class').each(function() {
        $(this).html($(this).text().replace(/y/ig, function(s) {
            return (s === 'Y' ? 'I' : 'i');
        }));
    });
});

Verander je $ (this) .text naar $ (this) .html

1
toegevoegd