【发布时间】:2010-03-31 05:05:12
【问题描述】:
我正在尝试根据元素容器的大小制作一个小名称摘要函数,这就是我所拥有的;
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... 谁能看到我哪里出错了?
编辑:
基于以下 cmets 的修订代码适用于任何在谷歌上搜索此类功能的人:
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;
}
}
屏幕截图:
【问题讨论】:
-
您是否假设每个字符都是一个像素宽?这是如何工作的?
-
我已经添加了截图来展示。
-
谢谢。我仍然不明白为宽度的每个像素添加 1 个字符如何为您工作,因为每个字符的宽度肯定大于 1 个像素。
标签: javascript function summary