jQuery:缩短字符串长度以适应设置的宽度

时间:2010-03-30 16:40:18

标签: javascript jquery string

我有一张桌子,在每个单元格中我想放置字符串,但它们比单元格宽度宽得多。为了防止换行,我想缩短字符串以适应单元格,并在末尾添加“...”以表示字符串更长。

该表有大约40行,必须对每个单元格进行操作,所以它很快就很重要。我应该使用JS / jQuery吗?

我该怎么做?

感谢您的时间。

亲切的问候,
的Marius

3 个答案:

答案 0 :(得分:8)

您可以使用CSS - 文本溢出:省略号 - 为此 - 对于某些浏览器和此处列出的变通方法有一些注意事项:

http://mattsnider.com/css/css-string-truncation-with-ellipsis/ (archived)

答案 1 :(得分:5)

这应该可以解决问题,其中8是您要保留的文本的大小

 $('td').each(function(){
    $(this).text($(this).text().substring(0,8)+"...");
 });

回答你评论我认为jquery width()应该有助于你前进,但我认为你的滑向滑坡你应该考虑一些不同的东西,例如将文本放入div或使用flexigrid或{ {3}}

答案 2 :(得分:5)

使用我的jQuery插件: jQuery-Shorten 它处理所有情况,利用文本溢出:省略号(如果可用)并且速度非常快。

下载: github.com/MarcDiethelm/jQuery-Shorten

演示&文档: http://web5.me/jquery/plugins/shorten/shorten.doc.html

您可以配置文本的结束方式(省略号)。默认值为三点字符(“...”,& hellip;,Unicode:2026),但您可以使用任何所需内容,包括标记。

'selected'元素的文本宽度(例如span或div)是使用Canvas测量的,或者将其放在临时表格单元格中并缩短(最初使用有根据的效率猜测)并再次测量直到它(和附加的省略号或文本)适合块内。 “selected”元素上的工具提示显示完整的原始文本。