У меня есть список, если <span>
элементов, которые мне нужно фильтровать и применять несколько операций (замена текста и добавление класса условно). У меня есть следующий рабочий код:Синтаксис JQuery для нескольких операций
$('span').filter(function() {
return $(this).text().toLowerCase()==phrase;
}).text(translation);
$('span').filter(function() {
return $(this).hasClass('translatable') && $(this).text().toLowerCase()==phrase;
}).addClass(translated);
Это работает, но явно перебирая все <span>
ей дважды. Можно ли объединить их в одну итерацию, что-то на линии:
$('span').filter(function() {
return $(this).text().toLowerCase()==phrase;
}).function() {
$(this).text(translation);
if($(this).hasClass('translatable'))
this.addClass("translated")
}
Просто выполните следующие методы: '.text (перевод) .addClass (перевод);' – billyonecan
@billyonecan да, я так думаю, но в отношении кода более подробно фильтр находится над текстом, который можно заменить между оба метода ... –
@SamuelCaillerie, если бы это было так, класс 'переводится' никогда не будет добавлен (так как текст был бы заменен после предыдущей функции фильтра). Я все еще думаю, что это всего лишь случай метода цепочки. – billyonecan