ホームページ  >  記事  >  ウェブフロントエンド  >  指定した長さの文字列をインターセプトするjQueryの実装原理とコード_jquery

指定した長さの文字列をインターセプトするjQueryの実装原理とコード_jquery

WBOY
WBOYオリジナル
2016-05-16 16:42:391321ブラウズ

指定された長さの文字列をインターセプトする操作は、Web サイト構築、特にニュース リストなどの操作で広く使用されています。

次に、文字列コードをインターセプトする例を示します:

<!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>

上記のコードは文字列をインターセプトする機能を実装しています。この効果を実現する方法を簡単に紹介します。

1. 実装原則:
div 内のテキストの長さを取得し、属性制限で指定された長さと比較し、長さを超えている場合は、インターセプトで指定された長さを使用し、... に置き換えます。

2. コードのコメント:
1.jQuery.fn.limit=function(){} は、jQuery のインスタンス関数を拡張するために使用され、jQuery オブジェクトはこの関数を呼び出すことができます。
2.var self = $("div[limit]")、limit 属性を持つ div オブジェクトのコレクションを取得するために使用されます。
3.self.each(function(){ }、div オブジェクト コレクション内の各オブジェクトを取得して、指定された関数を 1 回走査して実行できます。
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) "...")、指定された長さの文字列をインターセプトし、それを超える場合は省略記号に置き換えます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。