jQuery概覽

1. jQuery優點

查找元素的方法多種多樣,非常靈活;擁有隱式迭代的特性,不需手寫for循環;完全沒有兼容性問題;實現動畫非常簡單,而且功能強大;代碼簡單粗暴。

2. 關於壓縮版和未壓縮版

jquery-1.12.4.min.js:壓縮版本,適用於生產環境,因爲文件比較小,去除了註釋、換行。

jquery-1.12.4.js:未壓縮版本,適用於學習與開發環境,源碼清晰,易閱讀。

3. 入口函數

<script>
    // js的入口函數執行要比jQuery的入口函數執行得晚一些
    // jQuery的入口函數會等待頁面的加載完成才執行,但是不會等待圖片的加載,js會等待頁面和圖片都加載完成纔開始執行
    window.onload = function() { 
        console.log("這是js的入口函數");
    };
    // $其實是一個函數,後跟(),參數可以是function,表示入口函數;可以是dom對象,轉換成jQuery對象;可以是表示選擇器的字符串,用來找對象
    console.log( $ === jQuery ); // true
    $(document).ready(function() {
        console.log("這是jQuery入口函數第一種寫法");
    });
    $(function() {
        console.log("這是jQuery入口函數第二種寫法");
    });
</script>

4. jQuery對象和js對象

使用js的方式獲取到的元素就是js對象(DOM對象),使用jQuery的方式獲取到的元素就是jQuery對象,jQuery對象就是js對象的一個集合,僞數組,裏面存放了衆多的js對象,js對象和jQuery對象的方法不能混用,但可以互相轉換。

<script type="text/javascript">
    $(document).ready(function(){
        var $Karry = document.getElementById("Karry");
        console.log($($Karry)); // DOM對象轉換成jQuery對象
        var $li = $("#Karry");
        console.log($li[0]);
        console.log($li.get(0));
    })
</script>

5. 選擇器

(1)基本選擇器:ID選擇器$("#id")、類選擇器$(".class")、標籤選擇器$("div")、並集選擇器$("div, p, li")、交集選擇器$("div.redClass")。

(2)層級選擇器:後代選擇器$("s1  s2")、子代(兒子)選擇器$("s1 > s2")。

(3)過濾選擇器

名稱 用法 描述
:eq( index ) $("li:eq(2)").css("color","red"); 獲取到的li元素中,選擇索引號爲2的元素,索引號index從0開始
:odd $("li:odd").css("color","red"); 獲取到的li元素中,選擇索引號爲奇數的元素
:even $("li:even").css("color","red"); 獲取到的li元素中,選擇索引號爲偶數的元素
:first $("div p").first(); 首個 <div> 元素內部的第一個 <p> 元素
:last $("div p").last(); 最後一個 <div> 元素中的最後一個 <p> 元素
:gt $("ul li:gt(3)"); 列舉 index 大於 3 的元素
:lt $("ul li:lt(3)"); 列舉 index 小於 3 的元素

(4)篩選選擇器(方法):注意區分與前面選擇器的區別,一般用於函數/事件內部$(this)調用。

PS :$(this).index()返回當前元素在所有兄弟元素裏面的索引。

名稱 用法 描述
children(selector) $("ul").children("li") 相當於$("ul>li"),子類選擇器,無參數則是所有子類
find(selector) $("ul").find("li") 相當於$("ul li"),後代選擇器
siblings(selector) $("#first").siblings("li") 查找兄弟節點,不包括自己本身
parent() $("#first").parent() 查找父親
eq(index) $("li").eq(2) 相當於$("li:eq(2)"),index從0開始,$("li").get(2)返回js對象
next() $("li").next() 找下一個兄弟
nextAll() $("li").nextAll() 查找後面所有兄弟
prev() $("li").prev() 找上一個兄弟
prevAll() $("li").prevAll() 查找之前的所有兄弟

6. 基本操作

(1)css操作

$("li").css("backgroundColor", "pink"); 修改單個樣式
$("li").css( { backgroundColor: "pink", color: "red" } ); 修改多個樣式
$("li").css("backgroundColor"); 獲取樣式(默認第一個元素的樣式)

(2)class操作

$("li").addClass("basic"); 添加一個類
$("li").removeClass("basic"); 移除一個類
$("li").hasClass("basic"); 判斷是否有某個類,返回true或false
$("li").toggleClass("basic"); 如果有該類,則移除,如果沒有,則添加該樣式

(3)屬性操作

$("img").attr("title", "標題"); 設置單個屬性
$("img").attr( { title: "標題", alt: "可選" } ); 設置多個屬性
$("img").attr("title"); 獲取屬性值
$("img").removeAttr("title); 移除屬性

(4)prop方法

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
    // 對於布爾類型的屬性checked、selected、disabled,.attr()在該屬性沒有設置的情況下返回undefined
    // 因此不要attr方法,應該用prop方法,返回true或者false
    $(function() {
        $("input").eq(0).click(function() {
            $("#ck").prop("checked", true);
        });
        $("input").eq(1).click(function() {
            $("#ck").prop("checked", false);
        });
    })
</script>
</head>
<body>
    <input type="button" value="選中">
    <input type="button" value="不選中">
    <input type="checkbox" id="ck">
</body>
</html>

(5)特殊屬性操作

$("#btn").val(); 獲取內容 $("#btn").val("hahaha"); 設置內容
$("div").html(); 獲取內容,包含標籤,例如:<h3>我是標題</h3> $("div").html("<p>文本</p>"); 設置內容,自動解析html標籤,結果:文本
$("div").text(); 獲取內容,不包含標籤,例如:我是標題 $("div").text("<p>文本</p>"); 設置內容,不解析html標籤,結果:<p>文本</p>
$("div").width(); 獲取元素的width值,直接獲取到的是數字;$("div").css("width");獲取到的是帶單位的數字 $("div").height(); 獲取元素的height值
$("div").width(400); 設置元素width的值 $("div").height(400); 設置元素height的值
$("div").innerWidth(); padding + width $("div").innerHeight(); padding + height
$("div").outerWidth(); padding + width + border $("div").outerHeight(); padding + height + border
$("div").outerWidth(true); padding + width + border + margin $("div").outerHeight(true); padding + height + border + margin
$(window).scrollTop(); 向上滾動的距離,返回一個數值 $(window).srcollLeft(); 向左滾動的距離
$("div).offset(); 獲取元素相對於document的位置,返回一個對象,可通過.left和.top獲取值 $("div").position(); 獲取元素相對於有定位的父元素的位置,其餘特性同左
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章