Я хочу використовувати Javascript replace (), щоб додати HTML-теги (але вони повертають їх як рядки)

У мене є проста функція JavaScript, яка замінює символ "y" у будь-якому класі span.certain_class з "i":

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

});

Проблема у мене полягає в тому, що я хочу обернути замінений символ з інтервалом:

i

Коли я роблю це, браузер друкує теги як рядки, а не розбиває їх як HTML-код.

Чи може хто-небудь допомогти мені вирішити це?

0

4 Відповіді

Спробуй

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

Це зробить результат розбору як HTML, а не звичайним текстом.

2
додано
Бум! Це зробило. Дякую.
додано Автор emersonthis, джерело

Використовуйте $ (this) .html (...) замість .text() , щоб встановити вміст. Ви також можете використовувати html при читанні вмісту для заміни (залежно від того, що вони знаходяться у вашому сценарії).

1
додано

Ви повинні мати змогу просто змінити перший виклик на text() на виклик html() :

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

Змініть свій $ (цей) .text на $ (цей) .html

1
додано
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram