Задать вопрос
@ozerovlife

Как заменить текст на jquery?

Всем Привет! Помогите напистать маленькую функцию: есть: <div class="text"> April</div>. Нужно чтобы: если в блоке с класом текст написано April, то заменить текст на "Апрель", если там написано "March" то за менить текст на "Март", и тд. Не силен в js, прошу помощи.
  • Вопрос задан
  • 4341 просмотр
Подписаться 2 Простой Комментировать
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
Соберём объект вида { старый_текст: новый_текст }:

const months = Object.fromEntries(Array.from({ length: 12 }, (n, i) => {
  const d = new Date(0, i);
  return [
    d.toLocaleString('en-US', { month: 'long' }),
    d.toLocaleString('ru-RU', { month: 'long' }).replace(/./, m => m.toUpperCase()),
  ];
}));

Выполним замену:

$('.text').text((i, text) => months[text.trim()]);

// или

document.querySelectorAll('.text').forEach(n => {
  n.innerText = months[n.innerText] || n.innerText;
});

// или

for (const n of document.getElementsByClassName('text')) {
  n.textContent = months[n.textContent.trim()] || n.textContent;
}
Ответ написан
Комментировать
Randel
@Randel
Developer
const monthes = {
  'January': 'Январь',
  'February': 'Февраль',
  'March': 'Март',
  ////////////////////////// Все остальные месяцы
  'December': 'Декабрь'
};

$('.text').text(monthes[$('.text').text()]);


// Так немного понятнее будет, думаю...
Ответ написан
Комментировать
@lagudal
Вот мне недавно помогли с подобным вопросом, может, немного длиннее функция, но тем не менее, для коллекции
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Вам выше накидали много правильных вариантов на чистом JavaScript, но как дополнение, приведу пример на jQuery:
$('div.text:contains("April")').html('Апрель');
Это не совсем хороший вариант, но мне интуиция говорит, что этот вариант вам понравится больше из-за простоты.

Дословно здесь задано следующее условие: если будут найдены элементы div с классом text содержащее внутри себя текст April, то весь текст внутри найденных элементов будет заменен на Апрель.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы