@ozerovlife

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

Всем Привет! Помогите напистать маленькую функцию: есть: <div class="text"> April</div>. Нужно чтобы: если в блоке с класом текст написано April, то заменить текст на "Апрель", если там написано "March" то за менить текст на "Март", и тд. Не силен в js, прошу помощи.
  • Вопрос задан
  • 4292 просмотра
Решения вопроса 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, то весь текст внутри найденных элементов будет заменен на Апрель.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект