jquery的初步總結

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   java   使用   io   strong   

1、$(document).ready()方法和window.onload方法區別

為了正常操作頁面元素,我們需要把操作元素的JS代碼寫在$(document).ready()(Jquery)或window.onload(普通JS)中。$(document).ready()(這種寫法實際上是/把dom對象document轉換成了jQuery對象,然後註冊ready()事件)一般我們可以簡化為

$(function(){

........jquery代碼...........

});

下面介紹一些它們的區別:

  1. 執行時機
    window.onload方法是在網頁中的所有的元素(包括元素的所有關聯檔案)都完全載入到瀏覽器之後才執行。而通過jQuery中的$(document).ready()方法只要在DOM完全就緒時,就可以調用了,比如一張圖片只要<img>標籤完成,不用等這個圖片載入完成,就可以設定圖片的寬高的屬性或樣式等。
  2. $(document).ready()方法可以多次使用而註冊不同的事件處理常式,而window.onload一次只能儲存對一個函數的引用,多次綁定函數只會覆蓋前面的函數。
  3. 2、$.map函數(obj, fn)和$.each(obj, fn)函數。

    • obj (Object): 要重複迭代的對象或數組
    • fn (Function): 要在每個對象中執行的函數

    $.each(obj, fn(key,value))用於遍曆鍵值對集合,如果是普通數組,則鍵為下標index

    var dict = { ‘person1‘: ‘人類1‘, ‘person2‘: ‘人類2‘ };                var result = $.each(dict, function (k,v) {                        alert(k+"==="+v);//結果是分別彈出person1===人類1,person2====人類2                });
     

    $.map函數(obj, fn(value,index))

  4. var arrInt = [1, 3, 5, 7, 9]; var result = $.map(arrInt, function (val, index) { //通過實際觀察,發現,傳遞的函數有兩個參數,其中第一個參數表示遍曆的數組中的元素的值,第二個表示元素的索引 return val * 2; }); alert(result); //結果是2,6,10,14,18

    3、Dom和Jquery對象轉換

    dom對象轉為jquery對象,var div=document.getElementById();var jqdom=$(div),這樣就可以用jquery的一些成員,如text

    jquery對象轉為dom對象:var domobj=jqdom[0];這樣又可以用dom的一些成員了,如innnerText

    4、選取器:

    標籤選取器:$(‘p‘);

    ID選取器:$(‘#p1‘);

    類別選取器:$(‘.a‘)

    組合選取器:$(‘#btn,#p1,span‘)

    標籤+類別選取器:$(‘p.a‘);

    層次選取器:$(‘div p‘);

     

    $(‘div >p‘)div下直接子項目;

    $(‘div ~ p‘)在div後,搜尋所有p兄弟,等於$(‘div‘).nextAll(‘p‘);

    $(‘div +p‘)div後只找緊挨著的第一個p元素兄弟,等於$(‘div‘).next(‘p‘);

    5、隱式迭代:$(‘p‘).text(‘‘);無需迴圈便可設定所有p標籤文字

    6、鏈式編程:

    用鏈式編程時,需要注意next(),nextAll返回的已經不是原來的元素,也可以用end()恢複前一次的狀態。如$(this).prevAll().css(‘‘).end().siblings();

    text()、html()、val()這些方法用來設定值的時候可以鏈式編程,但是擷取內容的時候不能鏈式編程,因為擷取值的時候,返回值內容變了。【並不是任何時候都能鏈式編程,當返回值不是原來的對象時,就不能鏈式編程了。】

    $(‘p‘).text(‘我們都是p!‘).css(‘border‘, ‘5px solid yellow‘).click(function () {                    alert($(this).text());                });

    7、設定與擷取

    設定css:$(this).css({‘width‘:‘100px‘,‘border‘:‘1px‘});擷取css中某個屬性var width=$(this).css(‘width‘)

    設定attr:$(this).attr(‘width‘,‘100px‘),擷取attr某個屬性:var width=$(this).attr(‘width‘)

    設定text:$(this).text(‘text1‘),擷取text,var txt=$(this).text()

    設定val:$(this).val(‘text1‘),擷取text,var val=$(this).val()

    8、過濾器:

    $(‘p:first‘)第一個p元素,等於$(‘p‘).first()

    $(‘p‘:last)最後一個p元素,等於$(‘p‘).last();

    $(‘p:eq(2)‘)根據索引

    $(‘p:even‘)選取所有偶數個p

    $(‘odd)選取所有奇數個p

    $(‘p:gt(index)‘)大於索引

    $(‘p:lt(index)‘)小於索引

    $(‘header‘)選取所有h1-h6元素

    $(‘input:not(.myclass)‘)選取樣式名不是myclass

    過濾器練習:

    過濾器練習
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title>    <script src="scripts/jquery-1.8.2.js" type="text/javascript"></script>    <script type="text/javascript">        $(function () {            $(‘#table1 tr:first‘).css(‘font-size‘, ‘30px‘);            $(‘#table1 tr:last‘).css(‘color‘, ‘red‘);            $(‘#table1 tr:gt(0):lt(3)‘).css(‘fontSize‘, ‘28px‘);            $(‘#table1 tr:odd‘).css(‘backgroundColor‘, ‘red‘);        });    </script></head><body>    <table id="table1" border="1">        <tr>            <td>                姓名            </td>            <td>                成績            </td>        </tr>        <tr>            <td>                tom            </td>            <td>                100            </td>        </tr>        <tr>            <td>                jim            </td>            <td>                99            </td>        </tr>        <tr>            <td>                john            </td>            <td>                98            </td>        </tr>        <tr>            <td>                jason            </td>            <td>                97            </td>        </tr>        <tr>            <td>                aaa            </td>            <td>                97            </td>        </tr>        <tr>            <td>                平均分            </td>            <td>                98            </td>        </tr>    </table></body></html>

     

     

    9、Jquery效果:

    animate() 對被選元素應用“自訂”的動畫
    clearQueue() 對被選元素移除所有排隊的函數(仍未啟動並執行)
    fadeIn() 逐漸改變被選元素的不透明度,從隱藏到可見
    fadeOut() 逐漸改變被選元素的不透明度,從可見到隱藏
    fadeTo() 把被選元素逐漸改變至給定的不透明度
    hide() 隱藏被選的元素
    show() 顯示被選的元素
    slideDown() 通過調整高度來滑動顯示被選元素
    slideToggle() 對被選元素進行滑動隱藏和滑動顯示的切換
    slideUp() 通過調整高度來滑動隱藏被選元素
    stop() 停止在被選元素上運行動畫
    toggle() 對被選元素進行隱藏和顯示的切換

    Jquery效果簡單易用,可以在w3cschool中查看效果示範

    Jquery效果練習:仿QQ好友選項卡

    仿QQ好友選項卡
    <html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title>    <style type="text/css">        *        {            padding: 0;            margin: 0;        }        div        {            width: 200px;            height: 500px;            border: 1px solid blue;        }        ul        {            list-style-type: none;        }        ul li        {            text-align: center;        }        h3        {            background-color: Orange;            cursor: pointer;            margin-bottom: 2px;        }    </style>    <script src="jquery-1.8.2.js" type="text/javascript"></script>    <script type="text/javascript">        $(function () {            //設定好友名稱的背景色            $(‘h3 ~ ul > li‘).css({ ‘backgroundColor‘: ‘blue‘, ‘margin-bottom‘: ‘2px‘ });            //為“好友組標題”註冊單擊事件            $(‘ul li h3‘).click(function () {                $(‘#snd‘).attr(‘src‘, ‘1.WAV‘);                $(this).next(‘ul‘).slideToggle(500);            });        });    </script></head><body>    <bgsound id="snd" loop="0" src="">    <div>        <ul>            <li>                <h3>                    我的好友</h3>                <ul>                    <li>毛毛</li>                    <li>狗狗</li>                    <li>蛋蛋</li>                </ul>            </li>            <li>                <h3>                    我的同學</h3>                <ul>                    <li>張三</li>                    <li>李四</li>                    <li>王五</li>                </ul>            </li>            <li>                <h3>                    男朋友</h3>                <ul>                    <li>高富帥</li>                    <li>搞搞搞</li>                    <li>付福福</li>                </ul>            </li>            <li>                <h3>                    備胎</h3>                <ul>                    <li>lyj</li>                    <li>zzz</li>                    <li>fff</li>                </ul>            </li>        </ul>    </div></body></html>

     


jquery的初步總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.