Добрый день.
Была задача - обрезать название пункта меню, если длинное, по пробелу (т.е. не обрубить слово по середине) и почистить от союза "и".
Пример: Есть пункт меню "Оборудование Wi-Fi и Bluetooth" - оно длинное для дизайна меню, нужно что бы вывелось часть названия, так "Оборудование Wi-Fi", а не так "Оборудование Wi-Fi и Blueto" к примеру (overflow: hidden; не подходит по тем же причинам).
Написал следующее:
var str, newStr, cropIndex;
$('li').each(function (){
str = $(this).text(); //берём название пункта меню
if(str.length > 21){ //проверяем длину
str = str.slice(0, 21) // берём допустимую часть
cropIndex = str.lastIndexOf(' '); // определяем индекс пробела с конца строки
newStr = str.slice(0, cropIndex); // обрезаем до пробела
cropIndex = newStr.lastIndexOf(' и'); // аналагично проделываем с "и"
newStr = str.slice(0, cropIndex);
$(this).text(newStr); //записываем новую строчку
}
});
Знатоки JS, скажите, можно ли изящнее написать данный код