jQuery入门

jQuery入门

jQuery的使用方法:直接将jQuery的源文件拷贝到html文件的js目录中即可

前端代码的压缩:删除所有注释和空格,并且修改变量名以混淆。

1. jQuery文档加载完再执行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        // 等所有页面的内容加载完再执行,包括标签和图片
        window.onload = function(){
            var oDiv = document.getElementById("div01");
            alert('原生js获取的div:'+oDiv);
        }

        // 页面加载完再执行
        // $(参数) 表示函数
        $(document).ready(function(){
            // 接收一个jQuery对象
            var $div = $("#div01");  // 传入样式选择器的写法就可以选中
            alert('jQuery获取的div:'+$div);
        })
        // jQuery代码执行的比原生的快
        // 等标签加载完就执行了

    </script>
</head>
<body>
    <div id="div01">这是一个div</div>
</body>
</html>

jQuery简写为:

$(function(){
    ...
    ...
})

2. jQuery选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            // 使用id选择器选择元素
            var $div = $('#div01');

            // 使用类选择器选择元素
            var $div2 = $('.box');

            // 使用标签选择器选择元素
            var $li = $('li');

            // 使用层级选择器选择元素
            var $span = $('.box span');

            // 使用属性选择器选择元素
            var $div3 = $('div[class="box2"]');

            // 选择包含span标签的div
            var $div4 = $('div').has('span');

            // 选择样式类名不是box2的div
            var $div5 = $('div').not('.box2');

            // 选择列表中的第三个li
            var $li2 = $('li').eq(2);

            // 设置样式
            $div.css({'color':'red', 'font-size':30});
            $div2.css({'color':'pink', 'fontSize':'30px'});
            $li.css({'background':'gold', 'width':200});
            $span.css({'color':'red'});
            $div3.css({'color':'green', 'font-size':30});
            $div4.css({'text-indent':50});
            $div5.css({'text-decoration':'underline'});
            $li2.css({'font-style':'italic'});
        })


    </script>
</head>
<body>
    <div id="div01">这是第一个div</div>
    <!-- .box*2 -->
    <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">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $div = $('#div01');

            // 从当前标签转移到上一个紧挨的兄弟标签
            $div.prev().css({'color':'red'});
            // 从当前标签转移到上面所有的兄弟标签
            $div.prevAll().css({'text-indent':50});

            // 从当前标签转移到下一个紧挨的兄弟标签
            $div.next().css({'color':'blue'});
            // 从当前标签转移到上面所有的兄弟标签
            $div.nextAll().css({'text-indent':80});

            // 从当前标签转移到其他所有的兄弟标签(除去自己)
            $div.siblings().css({'text-decoration':'underline'});

            // 从当前标签转移到其父级标签
            $div.parent().css({'background':'green'});

            // 从当前标签转移到其子级标签
            $div.children().css({'color':'red'});

            // 选择一个class名称是sp02的子级
            $div.find('.sp02').css({'font-size':30});
        })
    </script>
</head>
<body>
    <div>
        <h2>这是一个h2标题</h2>
        <p>这是一个p标签</p>
        <div id="div01">这是一个<span>div</span><span class="sp02">第二个span</span></div>
        <h3>这是一个h3标题</h3>
        <p>这是第二个p标签</p>
    </div>
</body>
</html>
  • 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">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $div = $('#div01');
            var $div2 = $('#div02');
            var $li = $('.list li');

            // 转移后的对象没有指向,返回空对象
            var $div3 = $div.prev();
            
            // 通过jQuery对象的length属性来查看它是否包含元素
            var iLen = $div.length;  // 1
            // alert(iLen);
            // 没有选中元素length为0
            var iLen2 = $div2.length;  // 0
            // alert(iLen2);

            var iLen3 = $li.length;   // 8   说明里面有8个li
            // alert(iLen3);

            var iLen4 = $div3.length;   // 转移后的对象没有指向,length为0
            alert(iLen4);
        })
    </script>
</head>
<body>
    <div id="div01">这是第一个div</div>
    <!-- ul.list>li{列表文字}*8 -->
    <ul class="list">
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
    </ul>
</body>
</html>

3. jQuery样式操作

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

            // 读取样式属性值
            var sSize = $div.css('font-size');   // 16px
            // alert(sSize);

            // 写属性值,也叫设置属性值
            // 设置一个属性,可以不写成字典的形式
            $div.css('color', 'red');

            // 设置多个属性要写成字典的形式
            $div.css({'font-size':30, 'font-weight':'bold'});

            // 获取多个元素的样式属性值
            // 获取多个元素的样式属性值只返回第一个元素的属性值
            var sSize2 = $div2.css('font-size');
            // alert(sSize2);

            // 操作元素的样式类名
            // 增加样式类名
            $a.addClass('red');
            $a.addClass('big');
            $a.addClass('noline');
            // 删除样式类名
            $a.removeClass('red');
        })
    </script>
</head>
<body>
    <div id="div01">这是第一个div</div>
    <div>这是第二个div</div>
    <a href="#" id="link01">这是一个链接</a>
</body>
</html>

4. jQuery的click事件、this关键字、索引值

  • this关键字:点击的哪一个,this指的就是哪个。this是原生对象,直接使用this要使用原生js语法。

    • $(this)是jQuery对象,可以使用jQuery语法。
  • index()可以获取选中元素的索引值

    • 索引值代表的是它的结构中的第几个,并不是选中的元素集合中的第几个
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $li = $('.list li');
            var $p = $('p');
            // alert($li.length);

            // 绑定click事件
            $li.click(function(){
                // 点的哪一个,this指的就是哪个
                // this.style.background = 'red';
                // $(this)指的是当前发生click事件的jQuery对象
                $(this).css('background', 'red');

                // 获取当前点击元素的索引值
                alert($(this).index());
            });

            // 这里的index()索引值代表的是它的结构中的第几个,并不是选中的元素集合中的第几个
            alert($p.eq(0).index());
            alert($p.eq(1).index());
        })
    </script>
</head>
<body>
    <ul class="list">
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
        <li>列表文字</li>
    </ul>
    <div>
        <p>这是第一个p标签</p>
    </div>
    <div>
        <p>这是第二个p标签</p>
    </div>
</body>
</html>

5. 选项卡练习

jQuery中的链式调用

<!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>
        .tab_con{
            width:500px;
            height:350px;
            margin:50px auto 0;
        }
        .tab_btns{
            height:50px;
        }
        .tab_btns input{
            width:100px;
            height:50px;
            background:#ddd;
            border:0px;
            outline:none;
        }

        .tab_btns .active{
            background:gold;
        }

        .tab_cons{
            height:300px;
            background:gold;
        }

        .tab_cons div{
            height:300px;
            line-height:300px;
            text-align:center;
            display:none;
            font-size:30px;
        }

        .tab_cons .current{
            display:block;
        }
    </style>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $btn = $('.tab_btns input')
            var $div = $('.tab_cons div');

            $btn.click(function(){
                // jQuery的方法执行完毕后会再返回这个对象
                $(this).addClass('active').siblings().removeClass('active');
                // alert($(this).index());
                $div.eq($(this).index()).addClass('current').siblings().removeClass('current');
            });
        })
    </script>
</head>

<body>
    <div class="tab_con">
        <div class="tab_btns">
            <input type="button" value="按钮一" class="active">
            <input type="button" value="按钮二">
            <input type="button" value="按钮三">
        </div>
        <div class="tab_cons">
            <div class="current">按钮一对应的内容</div>
            <div>按钮二对应的内容</div>
            <div>按钮三对应的内容</div>
        </div>
    </div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值