im пытается сделать небольшое имя в зависимости от размера контейнера элементов, вот что у меня есть;javascript summary function
function shorten_text(str, size){
size = size.match(/[0-9]*/);
var endValue = Math.floor(Number(size)/10);
var number;
var newStr;
for (number = 0; number <= endValue; number++) {
if(str[number].length != 0) {
newStr += str[number];
}
}
return newStr + '...';
}
shorten_text('Phil Jackson', '94px');
// output should be 'Phil Jack...'
То, что я, кажется, получаю undefinedundef ... может кто-нибудь увидеть, где я неправильно?
EDIT:
пересмотренный код, основанный на комментарии ниже для тех, кто погуглить для такой функции:
function shorten_text(str, size){
size = parseInt(size);
var endValue = Math.floor(size/10);
if(str.length > endValue) {
return str.substring(0, endValue) + '...';
}else{
return str;
}
}
SCREEN SHOT:
screenshot http://www.freeimagehosting.net/uploads/4639663b52.gif
Вы предполагаете, что каждый символ имеет ширину в один пиксель? Как это работает? – Nir
Я добавил скриншот, чтобы показать. –
Спасибо. Я до сих пор не понимаю, как добавить 1 символ для каждого пикселя ширины для вас, так как каждый символ имеет переменную ширину, которая, безусловно, более 1 пикселя. – Nir