1. 程式人生 > >前端修煉——jQuery入門!

前端修煉——jQuery入門!

內容概述:     全域性變數和區域性變數,     jQuery 介紹     獲取標籤     jQuery 操作樣式     點選事、this 關鍵字     動畫 animate

全域性變數和區域性變數

全域性變數

定義在函式外面

作用範圍:是全域性的

區域性變數

定義在函式裡面

作用的範圍是區域性,函式內部

可以在函式中直接修改全域性變數

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script> // 定義全域性變數 var iNum01 = 33; function fnMyfunc(){ // 在函式內部定義區域性變數,需要加 var ,如果不加 var ,那麼定義的就是一個全域性變數
var iNum02 = 66; // 這裡就是一個全域性變數 iNum03 = 88; // 使用變數 console.log('函式內部呼叫全域性變數 iNum01: ' + iNum01); console.log('函式內部呼叫區域性變數 iNum02: ' + iNum02); iNum01 = 22; console.log('函式內部呼叫全域性變數 iNum01: ' + iNum01)
; } fnMyfunc(); console.log('函式內部呼叫全域性變數 iNum01: ' + iNum01); console.log('函式外部呼叫全域性變數 iNum03: ' + iNum03);
</script> </head> <body> </body> </html>

jquery 介紹

jQuery是目前使用最廣泛的javascript函式庫。據統計,全世界排名前100萬的網站,有46%使用jQuery,遠遠超過其他庫。微軟公司甚至把jQuery作為他們的官方庫。

jQuery的版本分為1.x系列和2.x、3.x系列,1.x系列相容低版本的瀏覽器,2.x、3.x系列放棄支援低版本瀏覽器,目前使用最多的是1.x系列的。

jquery是一個函式庫,一個js檔案,頁面用script標籤引入這個js檔案就可以使用。

使用:

<script src=“js/jquery-1.12.4.min.js”></script>

$(function(){程式碼功能})

jquery的口號和願望 Write Less, Do More(寫得少,做得多)

獲取標籤

jquery 選擇器

jquery 選擇器可以快速地選擇元素,選擇規則和 css 樣式相同,使用length 屬性判斷是否選擇成功。

找標籤

$(“#id”) 通過 id 名找元素

$(“.類名”) 通過類名找元素

$(“ 標籤名”) 通過標籤名找元素

$(“div p”) 通過標籤名層級找元素

過濾

$(‘div’).has(‘span’); // 選擇包含span元素的div元素

$(‘div’).not(’.box’); // 選擇class不是 .box的div元素

$(‘li’).eq(2); // 選擇li標籤的第2個元素

轉移

prev() 當前元素的上一個

prevAll() 當前元素的上面所有的

next() 當前元素的下一個

nextAll() 當前元素的下面所有

parent() 當前元素的父元素

children() 當前元素的所有子元素

siblings() 當前元素的所有同級元素

find() 通過指定條件找當前元素的某一個子元素

判斷是否選擇到了元素

jquery有容錯機制,即使沒有找到元素,也不會出錯,可以用length屬性來判斷是否找到了元素,length等於0,就是沒選擇到元素,length大於0,就是選擇到了元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>,
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $div = $('#div1');
            var $div2 = $('.box');
            var $li = $('li');
            var $span = $('.box span')
            var $div3 = $('div[class="box2"]');

            var $div4 = $('div').has('span');  // 選擇包含span元素的div元素
            var $div5 = $('div').not('.box');  // 選擇class不是 .box的div元素
            var $li2 = $('li').eq(2);  // 選擇li標籤的第2個元素


            $div.css({'color':'red','font-size':30});
            $div2.css({'color':'green','fontSize':'30px'});
            $li.css({'background':'gold'});
            $span.css({'color':'#666','font-size':50});
            $div3.css({'color':'#aaa','font-size':20});
            
            $div4.css({'text-indent':50});
            $div5.css({'text-decoration':'underline'});
            $li2.css({'list-style':'none'})
            
        })
  
    </script>

</head>
<body>
    <div id="div1">這是第一個div</div>
    <div class="box">這是第二個<span>div</span></div>
    <div class="box">這是第三個div</div>
    <div class="box2">這是第四個div</div>

    <ul>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
    </ul>

</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $div = $('#div1');

            $div.prev().css({'color':'red'}); // 選擇 id 前面緊挨的一個元素
            $div.prevAll().css({'text-indent':40});  // 選擇id前面的所有元素
            $div.next().css({'color':'blue'});  // 選擇id後面緊挨的一個元素
            $div.nextAll().css({'text-decoration':'underline'});  // 選擇id後面所有的元素

            $div.parent().css({'background':"#ccc"});  // 選擇id的父元素
            $div.children().css({'color':'red','font-size':40});  // 選擇id的子元素

            $div.siblings().css({'background':'gold'});  // 除選擇id外的所有元素

            $div.find('.sp02').css({'font-weight':'bold'});  // 通過類找選擇id中的某一個子元素

        })
       
    </script>

</head>
<body>
    <div>
        <h2>這是一個 h2 標題</h2>
        <p>這是一個段落</p>
        <div id="div1">這是一個<span>div</span><span class="sp02">span02</span></div>
        <h3>這是一個h3標題</h3>
        <p>這個第二個段落</p>

    </div>

</body>
</html>

jquery 操作樣式

行內style

css()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $div = $('#div1');

            //  讀取樣式屬性
            var sSize = $div.css('font-size');
            // console.log(sSize);  16px

            // 原生方法設定文字大小, 原生需要在標籤中宣告這個樣式屬性才可以獲取到
            var sSize2 = document.getElementById('div1').style.fontSize;
            // console.log(sSize2 );

            //  寫樣式屬性,也叫做設定或修改樣式屬性
            $div.css('color',"red");
            $div.css({'font-size':30,'background':'#666'});

            //  獲取多個元素的屬性值,得到的是第一個元素的屬性值
            var $div2 = $('div');
            var sSize3 = $div2.css('font-size');
            console.log(sSize3);

        })
      
    </script>
</head>
<body>
    <div id="div1">這是一個div</div>    
</body>
</html>
類選擇器

addClass() 追加樣式

removeClass() 刪除樣式

toggleClass() 重複切換樣式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .big {
            font-size: 30px;
        }
        .red {
            color:red;
        }
        .noline {
            text-decoration: none;
        }
   
    </style>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $a = $('#link01');

            // 增加樣式類名
            $a.addClass('big'); 
            $a.addClass('red');
            $a.addClass('noline');
            
            // 刪除樣式類名
            $a.removeClass('big');
            $a.removeClass('red noline');
                   
        })
        
    </script>

</head>
<body>
    <a href="#" id="link01">這是一個連結</a>
</body>
</html>

點選事件,this 關鍵字

click() 點選事件

$(this) 當前點選的事件 this是原生js,

index() 獲取元素的索引

mouseover() 滑鼠移入

mouseout() 滑鼠移除

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $li = $('.list li');
            var $p = $('p');

            // 繫結 click 事件
            $li.click(function(){
                // this 指的是當前發生點選事件的那個物件,它是原生物件
                // this.style.background = 'gold';

                // $(this) 指的是當前發生點選事件的那個物件,它是 jquery 物件
                $(this).css({'background':'red'});

                // 獲取元素的索引值
                console.log( $(this).index() );

            })

            $p.click(function(){
                console.log($(this).index());

            })
            
        })   
    </script>

</head>
<body>
    <ul class="list">
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字