Ben html etiketleri eklemek için Javascript replace () kullanmak istiyorum (ama onları dizeler olarak döndürüyor)

Herhangi bir span.certain_class içindeki "y" karakterini "i" ile değiştiren basit bir JavaScript işlevi var:

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

});

Sorun şu ki, değiştirilen karakteri bir span ile sarmak istiyorum:

i

Bunu yaptığımda, tarayıcı HTML kodu olarak ayrıştırmak yerine etiketleri dizeler olarak yazdırır.

Bunu çözmeme yardım eden var mı?

0

4 cevap

Deneyin

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

Bu, sonucu düz metin yerine HTML olarak ayrıştırır.

2
katma
Boom! Bu yaptı. Teşekkürler.
katma yazar emersonthis, kaynak

İçeriği ayarlamak için .text() yerine $ (this) .html (...) kullanın. Değiştirilecek içeriği okurken de html 'ı kullanmak isteyebilirsiniz (senaryonuzda ne olduğuna bağlı olarak).

1
katma

text() olan ilk aramayı html() olarak adlandırmanız yeterlidir:

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

$ (This) .text dosyanızı $ (this) .html olarak değiştirin

1
katma