我有一张桌子,在每个单元格中我想放置字符串,但它们比单元格宽度宽得多。为了防止换行,我想缩短字符串以适应单元格,并在末尾添加“...”以表示字符串更长。
该表有大约40行,必须对每个单元格进行操作,所以它很快就很重要。我应该使用JS / jQuery吗?
我该怎么做?
感谢您的时间。
亲切的问候,
的Marius
答案 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”元素上的工具提示显示完整的原始文本。