Объедините несколько функций в jquery - PullRequest
1 голос
/ 26 мая 2020

Это работает:

$('h2 a').each(function() {
    var text = $(this).text();
    $(this).text(text.replace('Open', 'Offen')); 
});

Не работает:

$('h2 a').each(function() {
    var text = $(this).text();
    $(this).text(text.replace('Open', 'Offen')); 
    $(this).text(text.replace('Answered', 'Beantwortet'));  
});

Как мне написать это, чтобы объединить несколько функций?

1 Ответ

4 голосов
/ 26 мая 2020

Вы продолжаете вносить изменения в исходную строку text, а не в результат предыдущей замены.

Выполните все замены в переменной text, а затем сохраните ее в конце.

$('h2 a').each(function() {
    var text = $(this).text();
    text = text.replace('Open', 'Offen'); 
    text = text.replace('Open', 'Unbeantwortet');
    text = text.replace('Answered', 'Beantwortet');  
    $(this).text(text);
});

Кроме того, функции text() можно присвоить функцию. Он будет перебирать все выбранные элементы и обновлять их возвращенным значением.

$('h2 a').text(function(i, text) {
    text = text.replace('Open', 'Offen'); 
    text = text.replace('Open', 'Unbeantwortet');
    text = text.replace('Answered', 'Beantwortet');  
    return text;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...