前言:從這節課開始講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.