您的位置:首页 > Web前端 > JQuery

jQuery截取指定长度字符串超出部分省略代码

2015-01-10 20:59 531 查看
获取div中的文本长度,然后和属性limit规定的长度进行对比,如果超出长度则用截取指定的长度,超出长度的部分用…替代。

<!DOCTYPE html>

<html>

<head>

<title>jQuery字符串截取</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="this is my page">

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!--正确的引用路径很重要-->

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>

<style>

{

margin:0;

padding:0;

font-family:"华文楷体" /*Arial, Helvetica, sans-serif;*/

}

#best

{

width:300px;

height:200px;

border:1px solid #ccc;

margin:60px auto 0;

line-height:1.6;

font-size:14px;

padding:10px 0 0 10px

}

.blank

{

font-size:18px;

font-weight:bold;

text-align:center;

padding:20px

}

</style>

</head>

<body>

<div id="best">

<div limit="12">这个字符串如无意外只会显示12个字符,

看看怎样先。床前明月光,疑是地上霜。

举头望明月,低头思故乡.

</div>

<!--空格的长度也会被计入length中-->

<div limit="10">

迟日江山丽,春风花草香。

泥融飞燕子,沙暖睡鸳鸯。

</div>

<div limit="12">落霞与孤鹜齐飞,秋水共长天一色。</div>

<div limit="12">乘风破浪会有时,直挂云帆济沧海。</div>

<div limit="10">昔我往矣,来者衣衣。今我来思,雨雪霏霏。行道迟迟,载渴载饥。我心伤悲,莫知我哀。</div>

</div>

</body>

<script type="text/javascript">

jQuery.fn.limit=function(){

var self = $("div[limit]");

self.each(function(){

var objString = $(this).text();

var objLength = $(this).text().length;

var num = $(this).attr("limit");

if(objLength > num){

$(this).attr("title",objString);

objString = $(this).text(objString.substring(0,num) + "...");

}

})

}

$(function(){

$(document.body).limit();

})

</script>

</html>

以上代码可以实现控制页面中显示固定长度的字符串的功能,超出长度部分会被…替换。

备注:需要引用到jquery-1.8.3.js.

一.实现原理

获取div中文本的长度,然后和通过和属性limit规定的长度进行对比,如果超出长度则使用截取指定的长度,后面用...替代。

二.代码注释

1.jQuery.fn.limit=function(){},用以为jQuery扩展一个实例函数,jQuery对象可以调用此函数。

2.var self = $("div[limit]"),用以获去具有limit属性的div对象集合。

3.self.each(function(){ },可以让获取的让div对象集合中的每一个对象遍历执行一次指定的函数。

4.var objString = $(this).text(),获取div元素中的文本内容,这里的this是指当each()函数进行遍历时当前div。

5.var objLength = $(this).text().length,获取当前div中文本内容的长度。

6.var num = $(this).attr("limit"),获取div中limit属性值,在这里用作了指定的字符长度。

7.if(objLength > num){},div中文本内容长度大于指定长度这执行指定的代码。

8.$(this).attr("title",objString),将div的title属性值设置为div中的内容。

9.objString = $(this).text(objString.substring(0,num) + "..."),截取指定长度字符串,超出的用省略号代替。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: