前言:從這節課開始講jQuery的相關內容,這節課主要圍繞jQuery的選擇器展開。

內容

  1.jQuery是一個優秀的js框架,目前企業裏大多數都是用jQuery(以下簡稱jq)。jq是對js裏一些常用功能的封裝和簡化,可以説jq是Write less, do more。jq的底層還是基於js。

  2.使用jq之前,需要添加jquery.js文件。第一個例子:

HTML代碼:

1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title></title>
 6     <script src="js/jquery-1.10.2.min.js"></script>
 7     <script src="js/demo.js"></script>
 8 </head>
 9 <body>
10 <input type="button" value="我是一個按鈕" id="btn"/>
11 </body>
12 </html>

View Code

JS代碼:

1 $(function() {
2     $("#btn").click(function() {
3         alert("Hello world~");
4     });
5 });

  上面的代碼雖然簡單,但是它體現了我們操作jq的思路及思想:1.$(function(){});代表頁面加載之後;2.$("#btn")找到jq對象;3.執行所需的事件click();4.聲明一個事件,用function();5.完成事件裏面的內容。

  $(document).ready(function(){});就等價於$(function(){});---後面的寫法是前面寫法的簡寫,都表示頁面加載之後。

  $("#btn")是jq中的找到對象,document.getElementById("btn")是相應的js中的找到對象寫法,由此可以看出jq的寫法簡單了很多。

  3.jq中的“$”:

    (1)選擇器:id選擇器($("#showDiv"));類選擇器($(".someClass"));標籤選擇器($("input"))

    (2)特殊: $("p:odd"):選擇所有位於奇數行的<p>標記;$("p:even"):選擇所有位於j偶數行的<p>標記;

          $("td:nth-child(1)"):所有表格行的第一個單元格,就是第一列;

          $("li>a"):返回<li>標籤中的所有子元素<a>,不包括孫元素;

          $("a[title]"):選擇所有設置了title屬性的超鏈接;

          $("a[href='www.bing.com']"):選擇所有等於www.bing.com的超鏈接;

          $("a[href^=http]"):選擇所有設置了以http開頭的超鏈接;

          $("a[href$=pdf]"):選擇所有以pdf結尾的超鏈接;

          $("a[href*=pdf]"):選擇所有包含pdf的超鏈接。

  4.功能函數前綴:$.trim(sString):去掉字符串前後的空格,但不能去掉字符串中間的空格。若要想去掉字符串中間的空格,用split()方法將字符串變為字符數組,然後遍歷數組,若是空格則去掉就好,代碼如下:

1 var sInput = $(#txt).val();
 2 var aInput = sInput.split("");
 3 for(var i = 0; i < aInput.length; i++)
 4 {
 5     if(aInput[i]==" ")
 6     {
 7         sInput = sInput.replace(" ","");
 8     }    
 9 }
10 alert(sInput);

  5.包含選擇器:$("li:has(a)"):包含超鏈接的所有li標籤。

  6.位置選擇器:$("p:first"):整個頁面中的第一個p標籤;

         $("p:last"):整個頁面中的最後一個p標籤;

         $("p:first-child"):選擇所有的p標籤,且這些p標籤是其父標籤的第一個標籤;

         $("p:last-child"):選擇所有的p標籤,且這些p標籤是其父標籤的最後一個標籤;

         $("p:nth-child(odd)").addClass("myClass"):選擇所有的p標籤,且這些p標籤是其父標籤的奇數行;

         $("p:odd"):整個頁面的奇數行p標籤;

         $("p:eq(4)")或$("p").eq(4):第5個p標籤,有兩種寫法;

         $("p:eq(2)").siblings():第3個p標籤的兄弟,即除了第三個之外的所有p標籤;

         $("p:eq(2)").prev():第3個p標籤的前一個p標籤;

         $("p:eq(2)").next():第3個p標籤的後一個p標籤;

         $("p:eq(2)").parent().attr("id")獲取第3個p標籤的父標籤的id屬性值

         $("p:gt(n)"):第n個(從0開始,不包括n本身)p標籤之後的所有p標籤,只有一種寫法;

  7.過濾選擇器:$("input[name='a']"):選擇所有name屬性為a的input標籤;

         $(":button"):所有按鈕;

         $("div:contains(foo)"):所有包含了文本”foo“的元素;

         $(":disable"):所有被禁用的元素,等價於:$("input[disabled=disabled]").attr("value","aaa");

         $(":enable"):所有沒有被禁用的元素;

         $(":file"):所有上傳文件;

         $(":input"):所有表單元素;

         $(":selected"):所有下拉菜單中被選中的項;

         $(":visible"):所有可見的元素;

         $(":submit"):所有提交按鈕;

  8.反向過濾:$("input:not(:radio)"):表示input中所有非radio元素;:not(filter)中的filter必須是過濾選擇器,而不能是其他選擇器。

後記:預習,複習,練習。

Keep moving.