我对Javascript和jQuery知之甚少,而且我正在尝试使用jQuery和dotdotdot插件在第二个换行之后截断表中的TD。
我认为如果不问,我将永远不会学习;
一个。这甚至可能吗?
B中。我如何用dotdotdot实现这一点 - 或者 - 有更好的方法吗?
另一个问题(Cross-browser multi-line text overflow with ellipsis appended within a width and height fixed `<div>`)中的图像正是我想要发生的,但我无法弄清楚如何使其适应表格单元格。不知道Javascript,jQuery似乎最适合做我想到的。
答案 0 :(得分:4)
在这里,跳过空单元格,不适用于小于定义的最大字符数的单元格。
$(function(){
$.each($('td').not(':empty'), function(i,v){
var count = parseInt($(v).text().length);
var maxChars = 210;
if(count > maxChars){
var str = $(v).text();
var trimmed = str.substr(0, maxChars - 2);
$(v).text(trimmed + '...');
}
});
});
+1为CraftyFella的评论
答案 1 :(得分:1)
你可以检查这个jsFiddle,它不使用jQuery,因为根据你的问题你需要知道如何制作省略号,这可以用css而不是需要jQuery。
如果您需要通过脚本完成,请告诉我您希望如何实现这一点并且我会发挥更多,但我希望这是您需要使用省略号而不是扩展td使您的td溢出
这是我的来源:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
td.test div
{
white-space: nowrap;
width: 70px;
overflow: hidden;
border: 1px solid #000000;
text-overflow: ellipsis;
}
</style>
</head>
<body>
<table>
<tr>
<td class="test">
<div>This is some long text that will not fit in the box</div>
</td>
</tr>
</table>
</body>
</html>
问候。
答案 2 :(得分:0)
td
元素上调用时, dotdotdot无法正常工作。您必须在div
元素中创建td
,将您的内容放在div
中,为td
元素指定最大宽度/高度,并在其上调用dotdotdot div
。
<table>
<tr>
<th>Short Column</th>
<th>Long Column</th>
</tr>
<tr>
<td>Some info</td>
<td height=50px width=50px>
<div id='long-column'><p>This is a long column that should be truncated by the dotdotdot plugin.</p></div>
</td>
</tr>
</table>
<script type=text/javascript>
$(document).ready(function () {
$('#long-column').dotdotdot({});
});
</script>
请参阅此小提琴以获取一个工作示例: