最近從朋友那兒聽說,寫JavaScript,JQuery是個不錯的東東,市場份額達到70%之巨。所以去下載了一份體驗了一下。
在JQuery的網站上發現,這個東東提供兩種版本下載。一種是原版,接近120K,另一種是把水分壓縮掉的,近60K。太久沒做應用技術了,沒想到居然出來了這麼多新鮮玩意兒,JavaScript還可以壓縮水分,所以順便又去了解了一下JavaScript的Packer(這是在線鏈接),如果有興趣,這裏可以下載它的.NET、Perl、Wsh和PHP等幾個版本。
不扯遠了,說回正題。壓縮版的JQuery的確合適網絡傳輸提速,但壓縮後的JQuery只有一行,不怎麼適合VCS(版本控制系統)管理。所以還是先用非壓縮版的,以後發佈產品的時候再壓縮就好。
在SVN上創建好項目之後,寫了個Readme上去,因爲涉及到配置之類的東西,用純文本寫的不方便閱讀,所以用HTML寫。之所以不用WPS(或Word)寫,同樣是因爲VCS的原因,還是非二進制的文本好控制些。不過HTML裏面的Header沒得Word的自動編號功能,如果哪天在一堆Header中間插入一個,就要把後面的編號全部打亂,改起來痛苦。所以就想起了JQuery,用它來編號,順便小試下牛刀。
- $(function () {
- var indexs = [0, 0, 0];
- $(":header").each(function () {
- var content = $(this).html();
- if ($(this).is("h1")) {
- indexs[0]++;
- indexs[1] = 0;
- content = "" + indexs[0] + ". " + content;
- } else if ($(this).is("h2")) {
- indexs[1]++;
- indexs[2] = 0;
- content = "" + indexs[0] + "." + indexs[1] + ". " + content;
- } else if ($(this).is("h3")) {
- indexs[2]++;
- content = "" + indexs[0] + "." + indexs[1] + "." + indexs[2] + ". " + content;
- }
- $(this).html(content);
- });
- });
哈哈,效果還不錯。但其實這個代碼是第二版了,最開始的時候是按h1、h2、h3來搜索的,處理起來還要麻煩些。特別是h3還放在一個class爲content的div裏面,用JQuery選項的時候還用到了:first過濾器,像這樣:
- var h3 = $(this).nextAll(".content:first").children("h3");
後來想到,說明裏很多路徑都是用變量代替的,比如$(PHP_HOME)這樣的,不如加個顏色標識,所以又添加了這樣一段代碼在$(function() {...})中。
- $(".path").each(function () {
- var content = $(this).html();
- content = content.replace(/(\$\(.*?\))/, "<span class='var'>$1</span>")
- $(this).html(content);
- });
還好我所有路徑都是用<span class="path"></span>包起來的,只需要把所有.path對象找出來,用正則表達式把$(...)替換成<span class="var"></span>就好。
總的來說,熟悉CSS的人寫JQuery還是很快的。看一個簡單的教程,再瀏覽一下JQuery的文檔,個把小時,就能把JQuery學會了,而且還很好用。難怪這麼多人喜歡!