jQuery截取指定长度字符串的实现原理及代码


Posted in Javascript onJuly 01, 2014

截取指定长度字符串操作在网站建设中大量使用,尤其是在新闻列表这种类型的操作中大量应用。

下面就是一个截取字符串代码实例:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>jQuery截取字符串操作</title> 
<script type="text/javascript" src="mytest/jQuery/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> 
<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> 
</head> 
<body> 
<div id="best"> 
<div limit="12">计算字串的长度长度长度长度</div> 
<div limit="10">这边有优化很公开这边</div> 
<div limit="12">这边有优化很公开长度长度很公开长度</div> 
<div limit="12">计算字长度长度</div> 
<div limit="10">这边有优化很边有优化很边有优化很边有优化很边有优化很</div> 
</div> 
</body> 
</html>

以上代码实现了截取字符串的功能,下面简单介绍一下它如何实现此效果的:

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

Javascript 相关文章推荐
jquery $(document).ready() 与window.onload的区别
Dec 28 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
Jan 11 Javascript
jquery键盘事件介绍
Jan 31 Javascript
AngularJS通过$location获取及改变当前页面的URL
Sep 23 Javascript
bootstrap多种样式进度条展示
Dec 20 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
vue中移动端调取本地的复制的文本方式
Jul 18 Javascript
微信小程序实现签到弹窗动画
Sep 21 Javascript
jQuery实现查看图片功能
Dec 01 jQuery
js正则匹配markdown里的图片标签的实现
Mar 24 Javascript
原生js事件的添加和删除的封装
Jul 01 #Javascript
jQuery的:parent选择器定义和用法
Jul 01 #Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 #Javascript
JavaScript利用正则表达式去除日期中的“-”
Jul 01 #Javascript
jquery实现图片按比例缩放示例
Jul 01 #Javascript
js 实现的可折叠留言板(附源码下载)
Jul 01 #Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 #Javascript
You might like
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
php微信开发之关注事件
2018/06/14 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
python中list循环语句用法实例
2014/11/10 Python
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
文明礼仪伴我行演讲稿
2014/05/12 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
古诗之感恩老师
2019/10/24 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers