在表格中剪切文本

时间:2011-11-28 15:09:22

标签: javascript jquery css

<table id="tab">
    <tr><td class="sub">mmmmm</td><td class="sub">jjjjj</td></tr>
    <tr><td class="sub">lllll</td><td class="sub">wwwww</td></tr>
</table>

#tab td {
  border: 1px solid green;
  max-width: 40px;
}

$(".sub").each(function(){
    var o = $(this).html();
    $(this).html(o.substring(0, 2))
})

现场例子:http://jsfiddle.net/UTYLf/1/

我想TD的最大宽度 - 40px。我想剪掉溢出的文字。我做了子串,但这不是友好的。 mm != ll jj != ww mm ll 有2个字符,但 mm ll 占用更多空间。 在我的示例中,我希望在表格中与此示例相同:http://jsfiddle.net/Eb6WN/

我必须使用什么而不是substr? 我可以使用html,css,javascript(jquery)和PHP

5 个答案:

答案 0 :(得分:3)

在这些类型的情况下,我使用overflow: hidden以及为每个单元格添加title以显示完整的文字:

#tab td {
    border: 1px solid green;
    max-width: 40px;
    overflow: hidden;
}

$(".sub").each(function(){
    $(this).attr("title", $(this).text()).css("cursor", "help");
})

http://jsfiddle.net/hunter/UTYLf/4/

答案 1 :(得分:2)

Thistext-overflow: ellipsis; white-space: nowrap; overflow: hidden;)应该把你排除在外,我想......

答案 2 :(得分:2)

您可以尝试将text-overflow属性添加到第一个CSS类。

#tab td {
  border: 1px solid green;
  max-width: 40px;
  text-overflow: ellipsis;
}

有关text-overflow的一些文档可以找到here

答案 3 :(得分:1)

为什么不为此使用overflow: hidden;

答案 4 :(得分:1)

还有一个jQuery插件允许这个多行线 http://plugins.jquery.com/plugin-tags/ellipsis