2017-04-06 jQuery 學(xué)習(xí)筆記

jQuery 簡(jiǎn)介&集成

  • 過(guò)去 js 中存在的一些問(wèn)題
  • 獲取某個(gè) DOM 對(duì)象魄咕,根據(jù)不同的類型赠群,使用不同的函數(shù)才能獲取
  • 代碼的容錯(cuò)性比較差泼各,如果一旦出現(xiàn)錯(cuò)誤摇锋,下買呢的代碼壓根沒(méi)法執(zhí)行
  • 如果批量的操作 DOM 對(duì)象知牌,必須手動(dòng)的遍歷操作
  • 有可能會(huì)左很懂兼容性的代碼
  • 實(shí)現(xiàn)一個(gè)小功能祈争,往往需要寫很多代碼才可以實(shí)現(xiàn),比如一個(gè)動(dòng)畫效果
  • 如果向操作一個(gè)對(duì)象的多個(gè)屬性角寸,要寫很多遍前綴
  • jQuery 代碼
$('.test2').click(function(){
        //隱式迭代
        //鏈?zhǔn)秸{(diào)用
        $('div').show(1000).html('哈哈哈');
})
alert('xxxx');
  • jQuery 的代碼風(fēng)格
    $('.cl')獲取標(biāo)簽菩混,其中使用類名獲取標(biāo)簽就用.cl,使用 id 獲取標(biāo)簽就用#cl扁藕,與 CSS 格式相同
$('.cl').click(function(){
        $('.box').hide();
});
$(function(){
        alert('xxx');
})

jQuery 加載模式對(duì)比

  • 函數(shù)沮峡,執(zhí)行時(shí)機(jī):整個(gè)文檔加載完畢( DOM 樹,圖片資源亿柑,外鏈資源)且只執(zhí)行一次邢疙,后面執(zhí)行的函數(shù),會(huì)把前面的賦值望薄、覆蓋疟游。
  • jQuery 不會(huì)有這樣的問(wèn)題
window.onload = function(){
        alert('xxx');
}
window.onload = function(){
        alert('ooo');
}

//文檔 DOM 樹加載完畢之后執(zhí)行
$(document).ready(function(){
        alert('xxxx');
})
$(document).ready(function(){
        alert('oooo');
})
$(function(){})

jQuery 解決沖突 noConflict

<script src=""></script>
<script src=""></script>
//后者會(huì)覆蓋前者
//如果后者是 jQuery 函數(shù)庫(kù)
//在使用完 jQuery 之后需解除綁定
$.noConflict();    //解除 $ 符號(hào)的使用綁定
// $ 實(shí)際上就是 jQuery

//如果前者是 jQuery 函數(shù)庫(kù),$ 被后者覆蓋
//使用即時(shí)函數(shù)來(lái)進(jìn)行操作
(function($){
        $('.box').hide();
        $('.box').hide();
        $('.box').hide();
})(jQuery)

jQuery 對(duì)象與 js 對(duì)象的相互轉(zhuǎn)換

  • jQuery 對(duì)象的命名規(guī)范是在對(duì)象前加 $ 符號(hào)
    var $div = $('.box');
  • 因?yàn)?jQuery 將 js 對(duì)象抓取封裝是在一個(gè)偽數(shù)組中痕支,所以 jQuery 對(duì)象向 js 對(duì)象轉(zhuǎn)換在 jQuery 對(duì)象之后加角標(biāo)即可,轉(zhuǎn)換之后就可以使用
    js DOM 對(duì)象方法$div[0].innerHTML,$div.get(0).innerTEXT
  • js 對(duì)象轉(zhuǎn)換成 jQuery 對(duì)象只需要用 $() 包裹即可$(div).html('xxx');

jQuery 操作 CSS 添加&刪除&切換類

$(function(){
        $('.on').click(funciton(){
                $('div').addClass('current');
        });
        $('#off').click(function(){
                $('div').removeClass('current');
        });
        $('#auto').click(function(){
                $('div').toggleClass('current');
        })
})

jQuery 操作 css-css()

$(function(){
        $('#get').click(function(){
                var $div = $('.box');
                var w = $div.css('width');
                var h = $div.css('height'); 
                var bg =$div.css('background');
                alert('--'+ w + '--' + h + '--' + bg )   
        })
        $('#set').click(function(){
                var $div = $('.box');
                //鍵值對(duì)的方式設(shè)置樣式
                $div.css({
                       'width':'500px',
                       'height':'500px',
                       'background':'red',
                 })
        })
})
  • 鏈?zhǔn)秸{(diào)用
  function Person(name) {
                    this.name = name;
                }
             
                Person.prototype.eat = function () {
                    console.log('吃飯');
                    return this;
                };
                Person.prototype.shuijiao = function () {
                    console.log('睡覺');
                    return this;
                };
                Person.prototype.qiaodaima = function () {
                    console.log('敲代碼');
                    return this;
                };

                var p = new Person('sz');
                p.eat().shuijiao().eat().eat().eat();

jQuery 操作css -尺寸

  $(function () {
                var w = $("#small").width()
                var h = $("#small").height()
                var iw = $("#small").innerWidth()
                var ih = $("#small").innerHeight()
                var ow = $("#small").outerWidth()
                var oh = $("#small").outerHeight()
                var owm = $("#small").outerWidth(true)
                var ohm = $("#small").outerHeight(true)
                var array = [w, h, iw, ih, ow, oh, owm, ohm]
                alert(array)
            });

jQuery 操作 html - 獲取&設(shè)置

$(function () {

//                    set();
//                    var div = document.getElementsByName('xx')
//                    $(div).get(0)

//                    console.log($('a').attr('target'));

//                    $('a').attr('href', 'http://www.baidu.com').attr('target', '_blank');
                    $('a').attr({
                        'href': 'http://www.baidu.com',
                        'target': '_blank'
                    })


                })

                function set() {
                    var $div = $('.box');
//                    console.log($div.text('<p>12345</p>'));
//                    $div.html('<p>12345</p>')

//                    var html = $div.html();

//                    $('input[type="text"]').val('321');

//                    $div.text($div.text() + '12345')

                    $div.text(function (index, oldValue) {
                        console.log(index + oldValue);
                        return oldValue + '11111';
                    })




//                    function exec(fun) {
//                        fun(1, 2, 3);
//                    }
//
//                    exec(function (a, b, c) {
//                        alert(a + '' + b + c);
//                    })


                }


                function get() {
                    // text
                    var $div = $('.box');
                    var text = $div.text();
                    var html = $div.html();
                    console.log(html);

                    var value = $('input[type="text"]').val();
                    console.log(value);
                }

jQuery 選擇器


            // ready函數(shù)
            $(function () {

//                baseSelector()
//                cengjiSelector()
//                propertySelector()
                filterSelector()
            });


            function filterSelector() {
                $("#filter").parent().css("background-color", "blue")
            }

            function propertySelector() {
                $("a[href*=520]").text("你被換了")

            }


            function cengjiSelector() {
//                $("#ul1 li").css("background-color", "red")
//                $("#ul1>li").css("background-color", "red")
//                $("#ul1+div").css("background-color", "red")
                  // ==
//                  $("#ul1").next("div").css("background-color", "red")
//                $("#ul1~div").css("background-color", "red")
                  // ==
                  $("#ul1").nextAll("div").css("background-color", "red")
            }

            function baseSelector() {
                $("#id").css("background-color", "red")
                // 注意, jQuery對(duì)象執(zhí)行某個(gè)方法, 會(huì)遍歷jQuery對(duì)象, DOM數(shù)組中的每個(gè)對(duì)象執(zhí)行這個(gè)方法
                // 但是可以通過(guò)索引進(jìn)行獲取 eq(index)
                $(".class").eq(0).css("background-color", "green")
                $("p").css("background-color", "yellow")
            }
    
        </script>
</head>
<body>


<!--基本選擇器-->
<div id="id">id選擇器內(nèi)容</div>
<div class="class">class選擇器內(nèi)容1</div>
<div class="class">class選擇器內(nèi)容1</div>
<p>元素選擇器內(nèi)容1</p>
<p>元素選擇器內(nèi)容2</p>


<!--層級(jí)選擇器-->
<ul id="ul1">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <ul id="ul2">
        <li>11</li>
        <li>22</li>
    </ul>

</ul>
<div>div1</div>
<div>div2</div>

<p id="x">hehe</p>

<!--屬性選擇器-->
<a >小碼哥</a>
<a >小碼哥2</a>

<!--篩選選擇器-->


<div>
    <p id="filter">hehe</p>
</div>

jQuery 選擇器演示

           <script>
                $(function () {

//                    $('ul>li:gt(0):not(:last)').css('background', 'red');

                    $('ul>li').click(function () {
//                        alert('xxx');
                        // d點(diǎn)擊誰(shuí),誰(shuí)背景 red 其他統(tǒng)統(tǒng) green
                        console.log(this);

                        $(this).css('background', 'red').siblings().css('background', 'green');

                    })


                })

            </script>
</head>
<body>


<ul>
    <li>li1</li>
    <li>li2</li>
    <li>li3</li>
    <li>li4</li>
    <li>li5</li>
    <li>li6</li>
    <li>li7</li>
    <li>li8</li>
    <li>li9</li>
    <li>li10</li>
</ul>

jQuery 鼠標(biāo)移入颁虐,移出事件

               $(function () {

//                    $('.big').mouseenter(function () {
//                        console.log('big鼠標(biāo)移入');
//                    });
//
//                    $('.big').mouseleave(function () {
//                        console.log('big鼠標(biāo)移出');
//                    });

//                    $('.big').mouseover(function () {
//                        console.log('big鼠標(biāo)移入');
//                    });
//
//                    $('.big').mouseout(function () {
//                        console.log('big鼠標(biāo)移出');
//                    });


                    $('.big').hover(function () {
                        console.log('big鼠標(biāo)移入');
                    }, function () {
                        console.log('big鼠標(biāo)移出');
                    });

//                    $('.big').mouseenter(function () {
//                        console.log('big鼠標(biāo)移入');
//                    })


                })

            </script>

jQuery 元素的角標(biāo)

       <script>
                $(function () {
                    // 移入和移除
                    $('li').hover(function () {
                        console.log($(this).index());
                    })
                })

            </script>
</head>
<body>

<ul>
    <li>li1</li>
    <li>li2</li>
    <li>li3</li>
    <li>li4</li>
    <li>li5</li>
    <li>li6</li>
    <li>li7</li>
    <li>li8</li>
    <li>li9</li>
    <li>li10</li>
</ul>

實(shí)現(xiàn) tab 標(biāo)簽

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>15-jQuery實(shí)現(xiàn)tab標(biāo)簽-(界面搭建)</title>
    <style>
        * {
            padding: 0;
            margin: 0;
            list-style: none;
        }

        .box {
            width: 500px;
            height: 400px;
            margin: 100px auto;
        }

        .nav {
            border: 2px solid gray;
            border-bottom: none;
            overflow: hidden;
            width: 400px;
            height: 40px;
            background: white;
            position: relative;

            top: 2px;
        }

        .nav>ul>li {
            float: left;
            margin: 10px;
        }

        .images {
            width: 500px;
            height: 300px;
            border: 1px solid gray;
            position: relative;
        }

        .images img {
            width: 500px;
            height: 300px;
            position: absolute;
            top: 0px;
            left: 0px;
        }

        .current {
            color: gold;
            font-size: 19px;
        }


    </style>

        <script src="../jquery-3.1.1/jquery-3.1.1.js"></script>
            <script>
                $(function () {

                    // 移入移出先后順序問(wèn)題?
                    // get set無(wú)法分清問(wèn)題?
                    // attr css方法使用區(qū)分問(wèn)題?

//                    attr('value', '123');
//                    css('left', 'none')
//                    val(123);
//                    html()
//                    input type = 'radio'
                        // div.style.display

                    $('.images>img:not(:first)').css('display', 'none');

                    $('.nav>ul>li').hover(function () {
                        var currentIndex = $(this).index();
                        $('.images>img').eq(currentIndex).css('display', 'block').siblings().css('display', 'none');

                        // 添加class
                        $(this).addClass('current').siblings().removeClass('current');


                    })


                })

            </script>

</head>
<body>

<div class="box">
    <div class="nav">
        <ul>
            <li class="current">H5學(xué)院</li>
            <li>iOS學(xué)院</li>
            <li>JAVA學(xué)院</li>
            <li>UI學(xué)院</li>
        </ul>

    </div>

    <div class="images">
        ![](tabImage/01.png)
        ![](tabImage/02.png)
        ![](tabImage/03.png)
        ![](tabImage/04.png)
    </div>


</div>


</body>
</html>

實(shí)現(xiàn)淘寶商品展示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>17-淘寶商品展示-(UI界面搭建)</title>
    <style>

        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        .box {
            width: 400px;
            height: 300px;
            margin: 100px auto;
            border: 1px solid goldenrod;
        }

        .left,.right {
            width: 100px;
            height: 300px;
            float: left;
        }
        .center {
            width: 200px;
            height: 300px;
            float: left;
            position: relative;
        }

        li {
            width: 100px;
            height: 34px;
            border-bottom: 1px dashed red;
            box-sizing: border-box;
        }

        .center img {
            width: 200px;
            height: 300px;
            position: absolute;
            top: 0;
            left: 0;
        }

        li:hover {
            background: green;
        }



    </style>

        <script src="../jquery-3.1.1/jquery-3.1.1.js"></script>
            <script>
                $(function () {

                    // 剛進(jìn)來(lái)之后, 把所有的圖片都隱藏, 僅僅只顯示第一個(gè)
                    $('img').eq(0).css('display', 'block').siblings().css('display', 'none');


//                    $('li').eq(9).css('background', 'red');

                    // 1. 監(jiān)聽所有l(wèi)i< hover
                    $('.left>ul>li').hover(function () {
                        // 2. 根據(jù)當(dāng)前l(fā)i對(duì)應(yīng)的索引,來(lái)控制中間圖片的展示
                        // 當(dāng)前的控件, 在父控件上的位置索引
                        var index = $(this).index();

                        // [] == get == dom對(duì)象
                        // eq
                        $('.center>img').eq(index).css('display', 'block').siblings().css('display', 'none');

                        console.log(index);
                    });

                    $('.right>ul>li').hover(function () {
                        // 2. 根據(jù)當(dāng)前l(fā)i對(duì)應(yīng)的索引,來(lái)控制中間圖片的展示

                        var index = $(this).index() + 9;
                        $('.center>img').eq(index).css('display', 'block').siblings().css('display', 'none');
                        console.log(index);
                    })



                })

            </script>


</head>
<body>

<div class="box">
    <div class="left">
        <ul>
            <li>登山鞋</li>
            <li>冬裙</li>
            <li>毛衣</li>
            <li>棉服</li>
            <li>男包</li>
            <li>男毛衣</li>
            <li>男棉服</li>
            <li>男靴</li>
            <li>呢大衣</li>
        </ul>
    </div>

    <div class="center">
        ![](taobaoImg/登山鞋.jpg)
        ![](taobaoImg/冬裙.jpg)
        ![](taobaoImg/毛衣.jpg)
        ![](taobaoImg/棉服.jpg)
        ![](taobaoImg/男包.jpg)
        ![](taobaoImg/男毛衣.jpg)
        ![](taobaoImg/男棉服.jpg)
        ![](taobaoImg/男靴.jpg)
        ![](taobaoImg/呢大衣.jpg)
        ![](taobaoImg/牛仔褲.jpg)
        ![](taobaoImg/女包.jpg)
        ![](taobaoImg/女褲.jpg)
        ![](taobaoImg/女靴.jpg)
        ![](taobaoImg/皮帶.jpg)
        ![](taobaoImg/皮衣.jpg)
        ![](taobaoImg/圍巾.jpg)
        ![](taobaoImg/雪地靴.jpg)
        ![](taobaoImg/羽絨服.jpg)
    </div>

    <div class="right">
        <ul>
            <li>牛仔褲</li>
            <li>女包</li>
            <li>女褲</li>
            <li>女靴</li>
            <li>皮帶</li>
            <li>皮衣</li>
            <li>圍巾</li>
            <li>雪地靴</li>
            <li>羽絨服</li>
        </ul>

    </div>

</div>


</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卧须,隨后出現(xiàn)的幾起案子另绩,更是在濱河造成了極大的恐慌,老刑警劉巖花嘶,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笋籽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡椭员,警方通過(guò)查閱死者的電腦和手機(jī)车海,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)隘击,“玉大人容劳,你說(shuō)我怎么就攤上這事≌⒍龋” “怎么了竭贩?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)莺禁。 經(jīng)常有香客問(wèn)我留量,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任楼熄,我火速辦了婚禮忆绰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘可岂。我一直安慰自己错敢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布缕粹。 她就那樣靜靜地躺著稚茅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪平斩。 梳的紋絲不亂的頭發(fā)上亚享,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音绘面,去河邊找鬼欺税。 笑死,一個(gè)胖子當(dāng)著我的面吹牛揭璃,可吹牛的內(nèi)容都是我干的晚凿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼瘦馍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晃虫!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起扣墩,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扛吞,沒(méi)想到半個(gè)月后呻惕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滥比,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年亚脆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盲泛。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡濒持,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寺滚,到底是詐尸還是另有隱情柑营,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布村视,位于F島的核電站官套,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奶赔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一惋嚎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧站刑,春花似錦另伍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至玻靡,卻和暖如春结榄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背囤捻。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工臼朗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蝎土。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓视哑,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親誊涯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挡毅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一、樣式篇 第1章 初識(shí)jQuery (1)環(huán)境搭建 進(jìn)入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,358評(píng)論 0 44
  • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關(guān)注...
    程序員poetry閱讀 16,636評(píng)論 18 503
  • 第一章 jQuery簡(jiǎn)介 1-1 jQuery簡(jiǎn)介 1.簡(jiǎn)介 2.優(yōu)勢(shì) 3.特性與工具方法 1-2 環(huán)境搭建 進(jìn)入...
    mo默22閱讀 1,578評(píng)論 0 11
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式暴构。設(shè)計(jì)者無(wú)需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性跪呈。 1....
    LaBaby_閱讀 1,167評(píng)論 0 1
  • #58號(hào)百日雕刻打卡Day21# 1.九點(diǎn)靠墻站 10分鐘 感受:飯后靠墻站已經(jīng)成習(xí)慣啦,邊站邊打嗝也是醉了取逾。 2...
    一然2016閱讀 389評(píng)論 0 0