當頁面清單內容很多的時候,我們可能需要將內容按照某個方式進行排序,例如按照字母或大小等排序。本文將使用排序插件jSort來對頁面內容進行排序。
jSort外掛程式可以對頁面任何內容進行排序(tables, lists, div elements),跨瀏覽器相容且非常輕巧。
運作效果圖:
XHTML
首先在head部分引入jquery庫和jSort插件。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/ jquery.min.js"></script> <script type="text/javascript" src="jquery.jsort.0.4.js"></script>
然後body直接加入如下程式碼:
<ul id="nav"> <li id="asc_btn">按标题↑</li> <li id="desc_btn">按标题↓</li> </ul> <div id="divs"> <div> <img src="images/s1.jpg" alt="" /> <h3 class="title">1.北京利比亚驻华大使馆升起反对派国旗</h3> <p>8月22日,北京利比亚驻华大使馆,门前的国旗已经更换成了反对派的国旗。22日上午11点左右, 记者电话采访了利比亚驻华使馆,一位中方工作人员告诉记者,目前未接到闭馆和工作调整的通知,使馆人员 应该会照常上班。</p> <p><a href="#">查看详情</a></p> </div> ....多个div </div>
可以看出HTML結構由兩個控制按鈕,和內容呈現區div#divs組成。
CSS
使用css將html頁面美化。
#nav{width:100%;margin:10px auto;} #nav li{float:left; width:80px; height:24px; line-height:24px; margin-right:10px; border:1px solid #d3d3d3; background:#f7f7f7; text-align:center; cursor:pointer} #divs div{height:180px; margin:10px 0px; padding:15px; background:#f7f7f7; border-bottom:1px solid #ddd} #divs div img{float:left; width:240px; height:160px; margin:10px} #divs div h3{line-height:24px; margin:10px 5px; font-size:16px; color:#456} #divs div p{line-height:22px; margin:6px 5px}
jQuery
當點選控制按鈕的時候,呼叫jSort外掛程式將內容排序,請看程式碼:
$("#asc_btn").click(function(){ $("#divs").jSort({ sort_by: "h3.title", item: "div", order: "asc" }); });
jSort插件提供幾個參數可設定:
item:指向需要排序的html內容元素,預設為div,本例中是排序div中的內容。
sort_by:指向item內需要排序的元素,預設為p,本例要排序的是h3.title。
order:排序方式,asc-順序,desc-倒序,預設為asc。
is_num:是否以數字大小排序,預設為false。
sort_by_attr:是否依照html元素屬性排序,預設為false。
attr_name:屬性名稱,如果sort_by_attr設定為true,則可以依照對應元素的屬性進行排序。如果需要排序的是中文字串,最好設定依照屬性排序,屬性的值可以是字母或數字之類的。
外掛程式jSort的使用方法就介紹到這,大家動手操作一下吧!