<!DOCTYPE html>
<html lang=
"en"
>
<head>
<meta charset=
"UTF-8"
>
<title>jQuery自动添加省略号</title>
<script src=
"http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"
></script>
<script type=
"text/javascript"
>
$(
function
() {
$(
".figcaption"
).each(
function
(i) {
var
pH = $(this).height();
var
$p
= $(
"p"
, $(this)).eq(0);
while
(
$p
.outerHeight() > pH) {
$p
.text(
$p
.text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/,
"..."
));
};
});
});
</script>
<style>
*{
padding: 0px;
margin: 0px;
}
.figcaption{
width: 300px;
height: 50px;
border: 1px solid red;
}
</style>
</head>
<body>
<p
class
=
"figcaption"
>
<p>
You probably can't
do
it (currently?) without a fixed-width font like Courier. With
a fixed-width font every letter occupies the same horizontal space, so you could
probably
count
the letters
and
multiply the result with the current font size in
ems
or
exs. Then you would just have to test how many letters fit on one line,
and
then
break
it up.</p>
</p>
</body>
<script>
</script>
</html>