0 Comments

截取文字内容实现控制列表宽度

发布于:2012-11-14  |   作者:广州网站建设  |   已聚集:人围观
截取文字内容实现控制列表宽度

截取文字内容实现控制列表宽度的原理为:可以对所有列表项截取相同长度。这样截取出来的列表项宽度就一致了。当然这种解决方式是基于字符等宽的基础上,如汉字字符。但是,如果是英文字符,这种解决方法就不尽如人意了。这种解决方法使用到了jQuery的ready()、each()和text()函数以及JavaScript的substr()函数。

1.jQuery的ready()函数--文档加载完成事件

该函数在文档就绪后,添加特殊效果,或者加入动态事件。其语法如下:


  1. 语法一   $(document).ready(function)  
  2. 语法二   $().ready(function)  
  3. 语法三   $(function) 

 

注:以上三种语法形式都表示调用ready()函数。function参数是一个必选参数,表示函数定义。在其中定义了当文档加载后要运行的功能。

2.jQuery的each()函数--遍历jQuery对象

该函数对jQuery对象进行遍历,为每个匹配元素执行函数。其语法如下:


  1. 语法一   each(function)  
  2. 语法二   each(object,function) 

 

注:语法一形式是以每一个匹配的元素作为上下文来执行一个函数。语法二形式为通用遍历方法,可用于遍历对象和数组。

3.jQuery的text()函数--所有匹配元素的内容

该函数可以获取并设置所有匹配包含的文本内容所组合起来的文本。其语法如下:


  1. text([val|function]) 

 

其中,参数val表示文本内容,function表示产生文本的函数。

4.功能实现

控制列表宽度的步骤如下。

(1)需要利用jQuery的ready()函数来实现在页面整体加载完成后执行特效效果。

(2)在function()内部使用each()函数遍历列表项。

(3)在each()函数中获取当前被遍历的<li>中嵌套的<span>元素对象的文本内容。

(4)如果文本长度超出范围,则通过substr()函数截取并加上删节号。

首先,把jQuery库引入进来:

 


  1. <script src="jslib/jquery-1.6.min.js" type="text/JavaScript"></script> 

 

然后,添加JavaScript代码,利用jQuery的选择器找出每个列表项,获取文字长度,并按照要求来进行截取。完整代码如下:

  1. 1<script type="text/JavaScript">                      
  2. 2        $(document).ready(function() {     //使用ready()函数,实现页面加载后                                              即出现特效  
  3. 3            $(".list").each(function() {   //使用each()遍历每一个<span> 
  4. 4                var inText = $(this).text();   //获取<span>中的文字内容  
  5. 5                if (inText.length > 10) {  //判断文字内容长度  
  6.                 //使用text()函数设置<span>中的文本,并用substr()截取  
  7. 6                    $(this).text(inText.substr(0,10)+"...");         
  8. 7                }    
  9. 8            });    
  10. 9        });    
  11. 10</script> 

 

图4.2是加入jQuery代码调整列表项长度后的效果。将其与图4.1进行比较可以发现,列表项长度统一,不会占用大量的页面空间,更方便页面布局。而且,这种修改列表项长度的方式能灵活控制长度值,灵活适应页面布局。
图4.2  截取文字内容实现列表中宽度相同的列表项
就像前面提到的,在这里如果文字内容是英文字符,由于英文字符不是等宽字符,因此得出的列表项并不是相同长度。
标签:
飞机