捐血一袋救人一命

江蘇拙政園

江蘇 拙政園

全家福

日本 和歌山城

賞楓之旅

千燈 夕照

水鄉千燈

蘆洲 微風運河

破曉時分

顯示具有 JavaScript 標籤的文章。 顯示所有文章
顯示具有 JavaScript 標籤的文章。 顯示所有文章

2013年7月25日 星期四

初學jQuery 1-2

首先我們先理解一下 jQuery 的設計理念,來進行學習。

一個網頁要產生動態效果,勢必要針對各標籤、文字、圖片等做動態處理。

那麼,要怎麼在網頁中,找到我們要處理的標籤、文字、圖片呢?

這就要靠 jQuery Selector 選擇器,

在傳統 JavaScript要取得某個元素內容,可以用 ID 來找,指令如下

getElementbyId("#id")

要取得標籤(Tag)必須使用

getElementsbyName("name")

至於要取得Class(類別)?抱歉,JavaScript 雖然有 getElementsbyClassName ,但是 IE 不支援(在某書裡提到 CSS 中,ID 與 Class 的區別在於一個可以用 JavaScript取用,一個不行,這樣的講法太不負責任…,就算 IE 不支援 byClassName,你還是可以用 JavaScript 來取得,只是過程就很繁瑣…)

改用 jQuery 只要寫

$("#id") 或 $(".class") 或 $("tag") ,引號裡面的用法與 CSS 一致,不用再記憶一大堆指令。

而且,你仔細看,getElementsbyName,多了一個 s ,表示複數,也就是說用這個指令,你會取得一大堆不相干的標籤,你還得再寫判斷式去篩選。

而 jQuery 多種 Selector 還可以組合運用,把不必要的元素篩掉。

所以,我們接下來介紹 jQuery Selector !!

先來三個基本型

$("name") 這裡面的 name ,不是只有 HTML 語法中的 Tag,你也可以自己定義標籤,然後用這個選擇器來找出正確的元素。
例如: <contact>John</contact>
          $("contact")
           <a href=”http://www.google.com.tw”>Google</a>
           $("a")
要注意的是,網頁裡可能會有多個相同標籤
$(".class") 這個就是指標籤裡的 class 名稱
例如:<input type="text" name="firstname" class="contact">
          <input type="text" name="lastname" class="contact">
          $(".contact")
要注意的是,網頁裡可能會有多個相同 Class (類別)
$(#id") 這裡指的就是標籤裡的 id 名稱
例如:<input type="text" name="username" id="username">
          <input type="password" name="passwd" id="passwd">
          $("#username") 指的就是 username 欄位
          $("#passwd") 指的就是 passwd 欄位
在HTML裡定義 ID 不可重覆,所當一個頁面裡有兩個以上相同的 ID ,會造成難以預測的結果(不動作或誤動作)

接下來再進階一點點

$("name, .class, #id") 這個Selector 只要符合任一 tag 或 class 或 id,就會被選擇到,中間以逗號區隔開
$("name .class #id") 這個Selector是指所有的 tag以及class和id 都要同時具備才會被選取
PS.每個 Tag 之間不要留空格!我是為了容易看清楚才留空格

初學jQuery 1-1

jQuery是什麼

講白了,jQuery就是一堆JavaScript函式庫,美其名叫做Framwork,只是jQuery將JavaScript語法、指令簡化。
網路上可以找到一大堆各式各樣的JavaScript Framework,例如:bootstrap、Kendo、Ext JS、…實在太多了,族繁不及備載…

為什麼要用jQuery

  1. 因為jQuery幫你把你想做的事都預先寫好了函式庫,你只要簡單幾個指令就可做到本來一大串指令才能做到的事。
    例如:讀取/設定表單欄位值、新增/移除表單元素(text、checkbox、radio、select、…)、設定/移除某標籤、類別、ID,來套用CSS樣式、抓取滑鼠鍵盤動作、顯現/隱藏元素、改變元素屬性值,例如座標位置、或大小寬高、設定觸發事件、執行傳值給伺服器端程式、接收伺服器資訊…
  2. 針對不同的瀏覽器、版本處理,讓你設計的網站能相容各家瀏覽器,能呈現一致的效果
  3. 針對不同的硬體平台,也幫你處理的好好的
  4. 常用的特效及功能都幫你處理好了

該如何下手學習 jQuery ?

建議各位使用以下兩個網站來進行學習

  1. http://jsfiddle.net/
  2. http://codepen.io/

jsfiddle.net 在使用前,必須先申請帳號,然後 Create a New Fiddle

就可以開始進行練習,左邊長條形區域,可以讓你選擇你要使用的 jQuery 版本,請直接選最新版

它也提供其他 JavaScript Framworks

右邊四個窗框

HTML CSS/SCSS
JavaScript Result
 
你可以直接在 HTML 窗框中輸入 HTML 語法,不需要輸入 <html><head><title></title><body></body></html>
 
在JavaScript窗框中,就直接輸入 JavaScript/jQuery 程式碼,不需要再輸入<script></script>
 
CSS 的部份就直接填 CSS 語法,如果你想用 SCSS,請在左邊長條形區域的 Languages 裡選擇 SCSS
當你輸入完畢之後,就可以按下,頁面上方的 Run,就可以在 Result 窗框看到結果。
  1. 確定滿意後,你就可以按下 Save 存檔,有任何修改,可以按下 Update更新存檔
  2. 如果你要利用現有的存檔,改寫不同功能的程式,可以按 Fork,它會幫你把現有的內容複製成一份新的
  3. 在Dashboard 可以看到所有你存檔過的網頁,也可以產新全新空白的 Fiddle
  4. 你也可以在網路上搜尋到別人用Fiddle 寫的網頁,如果覺得不錯,或是需要修改,也可以修改,然後存到你的帳號下
  5. 按下 Share,就可以取得分享這個網頁的連結
至於Codepen 用法類似 jsFiddle,
相異處:
  1. jQuery 的部份,你必須自己在 HTML 窗框中寫入引用 CDN 的 jQuery 檔案,例如:
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  2. 可以不用申請帳號,但如果不申請帳號,就不能存到你的帳號下
  3. 這裡不用按Run,一打好就會自動執行

2013年7月21日 星期日

使用 jQuery 新增(append) 移除(remove) 表單元素(Element)

在移除元素時,記得執行 Renew ID 的動作,因為如果移除中間的元素,會造成 ID 空號,

以 jQuery 記算元素數量來產生新 ID 時,會造成 ID 重覆!

原始 Sample 如下網址,在新增多個欄位之後,任意刪除中間的欄位,再次新增欄位,就可發現 ID 重覆

http://jsfiddle.net/qBURS/2/

 

修改後的版本如下,其實就是在移除欄位時,重新設定所有元素的 ID 屬性

http://jsfiddle.net/tomboliu/qBURS/571/

 

簡略一點的範例:

http://jsfiddle.net/tomboliu/7qcX8/

2012年12月9日 星期日

如何讓網頁定時轉換其它網頁

<head></head>標籤之間利用 <meta http-equiv="refresh" content="SS ; url=URLADDR">

這樣的語法只有在 IE 才會生效,Chomre 是不會鳥這樣的語法

所以另一個變通的方法,就是利用 Java Script,

因為 Java Script 的指令相容性會比 HTML 高一些