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

获取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) + "..."),截取指定长度字符串,超出的用省略号代替。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值