jQuery

一、jQuery入门

1.介绍

        目前最流行的JavaScript函数库之一,对JavaScript进行了封装。并不是一门新语言,而是将常用的、复杂的JavaScript操作进行函数化封装,封装后可以直接调用,大大降低了使用JavaScript的难度,改变了使用JavaScript的习惯。

2.特点
  • JavaScript的缺点

    • 选择器功能弱

    • DOM操作繁琐至极

    • 浏览器兼容性不好

    • 动画功能弱

  • jQuery的优点

    • 强大的选择器

    • 出色的DOM封装

    • 出色的浏览器兼容性

    • 强大的动画功能

    • 体积小,压缩后只有100KB左右

    • 可靠的事件处理机制

    • 使用隐式迭代简化编程

    • 丰富的插件支持

 3.jQuery的使用
  • 关于jQuery的使用需要先导入jQuery的js文件,发现jQuery本身就是一个JS文件。

  • $是jQuery使用最多的符号,它有多个作用。这个示例中就使用了$的两个作用。 作用1:$(function(){})

    • 相当于 window.οnlοad=function(){},功能比window.onload更强大

    • window.onload一个页面只能写一个,但是可以写多个$() 而不冲突

    • window.onload要等整个页面加载完后再执行(包括图片、超链接、音视频等),但是$的执行时间要早

    • 完整形式是$(document).ready(…….);

      jQuery(document).ready(…….);

    作用2: $(selector)

    • 选择器。jQuery具有强大的选择器功能,后面会有专门章节进行介绍

  • jQuery的基本语法:$(selector).action

    获取页面内容:$(selector)

    操作页面的内容:action

    • 控制页面样式

    • 访问和操作DOM元素

    • 事件处理功能

    • 动画功能

    • Ajax功能(jQuey不仅封装了JavaScript,还封装了Ajax)

 4.jQuery对象和DOM对象
  • DOM对象:直接使用JavaScript获取的节点对象 className innerHTML value

  • jQuery对象:使用jQuery选择器获取的节点对象,它能够使用jQuery中的方法 addClass() html() val()

  • DOM对象转换成jQuery对象 $(DOM对象)

  • jQuery对象转换成DOM对象 jQuery对象[index] jQuery对象.get(index)

 案例理解

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">
        $(function(){
            //dom对象
            var in1Value = document.getElementById('in1').value;
            document.getElementById('in2').value = in1Value;

            var pEle = document.getElementById('p1');
            var pText = pEle.innerHTML;
            document.getElementById('p2').innerHTML = pText;

            //jquery对象
            var val1 = $('#in1').val();
            $('#in3').val(val1);

            var p1 = $('#p1').html();
            $('#p3').html(p1);

            //js ---- > jquery
            alert(pEle);
            alert($(pEle));

            //jquery ---> js
            alert($('#in1')[0]);

        })
    </script>
</head>
<body>

    <input type="text" value="123" id="in1"><br>
    <input type="text" id="in2"><br>
    <input type="text" id="in3"><br>

    <p id="p1">jQuery对象和DOM对象!</p>
    <p id="p2"></p>
    <p id="p3"></p>

</body>
</html>

二、jQuery选择器

1.基本选择器
  1. 标签选择器 $("a")

  2. ID选择器 $("#id") $("p#id")

  3. 类选择器 $(".class") $("h2.class")

  4. 通配选择器 $("*")

  5. 并集选择器$("elem1, elem2, elem3")

  6. 后代选择器$(ul li)

  7. 父子选择器 $(ul > li)

  8. 后面第一个兄弟元素节点 prev + next

  9. 后面所有的兄弟元素节点 prev ~ next

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">

        $(function(){

            //标签选择器
            // $('h3').css('background-color', 'red');

            //id选择器
            // $('#p1').css('font-size', '30px');

            //类选择器
            // $('.p2').css('color', 'red');

            //通配选择器
            // $('*').css('background-color', 'blue');

            //并集选择器
            // $('span,h2').css('color', 'green');

            //后代选择器
            // $('#div1 p').css('color', 'red');

            //子元素选择器
            // $('#div1 > p').css('color', 'red');

            //后面的第一个元素
            // $('h2+p').css('color', 'red');

            //后面的所有兄弟元素
            $('h2~p').css('color', 'red');
        })

    </script>
</head>
<body>

    <p id="p1">我是段落1.</p>
    <p class="p2">我是段落2.</p>
    <p class="p2">我是段落3.</p>

    <div id="div1">
        <span>我是div中span的内容!</span>
        <h2>我是div中的h2标题内容1!</h2>
        <p>我是div中的段落1.</p>
        <p>我是div中的段落2.</p>
        <div>
            <p>我是div中的div中的段落.</p>
        </div>
        <h2>我是div中的h2标题内容2!</h2>
    </div>

    <h3>我是h3内容1</h3>
    <h3>我是h3内容2</h3>
    <h3>我是h3内容3</h3>

</body>
</html>
 2.属性选择器
  1. [attribute] 匹配包含给定属性的元素

  2. [attribute1][attribute2] 复合属性选择器,需要同时满足多个属性

  3. [attribute=value] 匹配给定的属性是某个特定值的元素

  4. [attribute!=value] 匹配所有属性不等于特定值的元素

  5. [attribute^=value] 匹配给定的属性是以某些值开始的元素

  6. [attribute$=value] 匹配给定的属性是以某些值结尾的元素

  7. [attribute*=value] 匹配给定的属性是以包含某些值的元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">

        $(function(){
            //[attribute] 匹配包含给定属性的元素
            // var test1 = $('input[id]');
            // alert(test1.length);

            //[attribute1][attribute2] 复合属性选择器,需要同时满足多个属性
            // var test2 = $('input[name][value]');
            // alert(test2.length);

            //[attribute=value] 匹配给定的属性是某个特定值的元素
            // var test3 = $('input[type=password]');
            // alert(test3.length);

            //[attribute!=value] 匹配所有属性不等于特定值的元素
            // var test4 = $('input[name!=hobby]');
            // alert(test4.length);

            //[attribute^=value] 匹配给定的属性是以某些值开始的元素
            // var test5 = $('input[name^=u]');
            // alert(test5.length);

            //[attribute$=value] 匹配给定的属性是以某些值结尾的元素
            // var test6 = $('input[name$=y]');
            // alert(test6.length);

            //[attribute*=value] 匹配给定的属性是以包含某些值的元素
            var test7 = $('input[name*=s]');
            alert(test7.length);
        })

    </script>
</head>
<body>
<form action="">

    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username" id="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password" id="password"></td>
        </tr>
        <tr>
            <td>爱好:</td>
            <td>
                <input type="checkbox" name="hobby" value="Java">Java
                <input type="checkbox" name="hobby" value="C++">C++
                <input type="checkbox" name="hobby" value="PHP">PHP
            </td>
        </tr>
        <tr>
            <td>职业:</td>
            <td>
                <select name="professional" id="professional">
                    <option value="程序员">程序员</option>
                    <option id="p2" value="公务员">公务员</option>
                    <option value="律师">律师</option>
                    <option value="医生">医生</option>
                </select>
            </td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="注册"></td>
        </tr>
    </table>

</form>
</body>
</html>
3.位置选择器

针对整个页面而言的位置选择器

  1. :first 获取第一个元素

  2. :last 获取最后一个元素

  3. :odd 匹配所有索引值为奇数的元素,从 0 开始计数

  4. :even匹配所有索引值为偶数的元素,从 0 开始计数

  5. :eq(n) 匹配一个给定索引值的元素,从0开始计数

  6. :gt(n) 匹配所有大于给定索引值的元素

  7. :lt(n) 匹配所有小于给定索引值的元素

针对上级标签而言的位置选择器

  1. :first-child 匹配第一个子元素

  2. :last-child 匹配最后一个子元素

  3. :nth-child(n) 匹配其父元素下的第N个子元素

  4. :nth-child(odd|even) 匹配其父元素下的奇偶元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">

        $(function(){
            //针对整个页面而言的位置选择器
            //:first  获取第一个元素
            // alert($('h4:first').text());

            //:last  获取最后一个元素
            // alert($('p:last').text());

            //:odd 匹配所有索引值为奇数的元素,从 0 开始计数
            // $('p:odd').css('color', 'red');

            //:even匹配所有索引值为偶数的元素,从 0 开始计数
            // $('p:even').css('color', 'red');

            //:eq(n) 匹配一个给定索引值的元素
            // alert($('p:eq(2)').text());

            //:gt(n) 匹配所有大于给定索引值的元素
            // $('p:gt(1)').css('color', 'red');

            //:lt(n) 匹配所有小于给定索引值的元素
            // $('p:lt(2)').css('color', 'red');

            //针对上级标签而言的位置选择器
            //:first-child  匹配第一个子元素
            // $('div :first-child').css('color', 'red');

            //:last-child匹配最后一个子元素
            // $('div :last-child').css('color', 'red');

            //:nth-child(n)   :nth-child(odd|even) 匹配其父元素下的第N个子或奇偶元素
            // $('div :nth-child(3)').css('color', 'red');
            // $('div :nth-child(odd)').css('color', 'red');
        })
    </script>
</head>
<body>

    <div>
        <p>我是段落1.</p>
        <p>我是段落2.</p>
        <p>我是段落3.</p>
        <p>我是段落4.</p>
        <h4>标题1</h4>
        <h4>标题2</h4>
        <h4>标题3</h4>
        <div>
            <h3>我是h3标题</h3>
            <p>我是段落!</p>
        </div>
        <div>
            <p>唯一的儿子段落!</p>
        </div>
    </div>
</body>
</html>
 4.表单选择器

关于表单项的选择器

  1. :text :password :radio :checkbox :hidden :file :submit

  2. :input 匹配所有 input, textarea, select 和 button 元素

注意:$("input")$(":input")的区别

  1. $("input"):标签选择器,只匹配input标签

  2. $(":input"): 匹配所有 input, textarea, select 和 button 等元素

关于表单项状态的选择器

        selected :checked :disabled

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">
        $(function(){

            //:text 用来获取表单项中 type="text"的元素
            // $(':text').css('background-color', 'red');

            //:password 用来获取表单项中 type="password"的元素
            // $('#form1>:password').css('background-color', 'red');

            //:radio 用来获取表单项中单选按钮   :checked表示选中的意思
            // alert($(':radio:checked').val());

            //:checkbox 用来获取表单中的复选框
            // alert($(':checkbox:checked').val());

            //(元素):hidden
            // alert($('input:hidden').val());

            //:file 获取表单中 type="file"的元素
            // alert($(':file:nth-child(21)').attr('class', 'abc'));

            //:submit
            // alert($(':submit').attr('value'));

            //:input  匹配所有 input, textarea, select 和 button 元素
            // alert($(':input').length);

            //:selected  匹配select元素中选中的元素
            // alert($(':selected').text());

            //:checked
            // alert($(':checked[name=sex]').val());

            //:disabled
            // alert($(':disabled').val());
        })
    </script>
</head>
<body>
<form action="" id="form1">
    <input type="hidden" name="id" value="123">
    <br>

    账号: <input type="text" name="username">
    <br>
    密码: <input type="password" name="password">
    <br>
    生日: <input type="text" name="birthday"><br>
    工资: <input type="text" name="salary"><br>
    性别:<input type="radio" name="sex" value="男">男
        <input type="radio" name="sex" value="女" checked="checked">女 <br>

    爱好:<input type="checkbox" name="hobby" value="篮球">篮球
        <input type="checkbox" name="hobby" value="足球">足球
        <input type="checkbox" name="hobby" checked="checked" value="排球">排球
        <input type="checkbox" name="hobby" value="网球">网球 <br>

    头像:<input type="file" name="photo"><br>
        <input type="file" name="photo" class="aaa"><br>
        <input type="file" name="photo"><br>

    职业:<select name="" id="">
            <option value="程序员">程序员</option>
            <option value="公务员" selected="selected">公务员</option>
            <option value="律师">律师</option>
        </select>
    <input type="submit" value="注册" disabled="disabled">
</form>
</body>
</html>

 三、jQuery事件机制

1.介绍

        事件驱动: 监听对应的事件, 触发了对应的事件, 事件会被监听到, 监听到事件后驱动函数的执行.

2.使用

 jQuery给元素绑定事件的格式是

$(function(){
    $('选择器').事件(function(){
        
    });
})

注意:

  1. 使用jQuery给元素绑定事件时,要写在页面加载完事件内。

  2. 这里的事件可以是 click、blur、focus等等。不要写on,因为之前在js中我们写的是onClick。

 案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            //给元素绑定点击事件
            $('button').click(function(){
                alert('点击事件被触发!');
            });

            //给元素绑定失焦事件
            $('input').blur(function(){
                alert('失焦事件被触发!');
            });
        })
    </script>
</head>
<body>
    <button>按钮</button>
    <br>
    <input type="text">
</body>
</html>

四、jQuery动画

1.显示隐藏动画

实现显示动画效果方法:show()

实现隐藏动画效果方法:hide()

实现切换显示和隐藏动画效果方法:toggle()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>

    <script>
        $(function(){
            $('#btn1').click(function(){
                //隐藏元素,参数表示时间,单位是毫秒
                $('div').hide(3000);
            });

            $('#btn2').click(function(){
                //显示元素
                $('div').show(3000);
            });

            $('#btn3').click(function(){
                //隐藏与显示的开关
                $('div').toggle(2000);
            });
        })
    </script>
</head>
<body>
    <div style="width: 100px;height: 100px;background: #bfa">

    </div>
    <button id="btn1">隐藏</button>
    <br>
    <button id="btn2">显示</button>
    <br>
    <button id="btn3">隐藏/显示</button>
    <br>
</body>
</html>
2.滑动动画

实现向下滑动动画效果方法:slideDown()

实现向上滑动动画效果方法:slideUp()

实现滑动切换效果方法:slideToggle()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                $('div').slideDown(2000);
            });

            $('#btn2').click(function(){
                $('div').slideUp(2000);
            });

            $('#btn3').click(function(){
                $('div').slideToggle(2000);
            });
        })
    </script>
</head>
<body>
    <div style="background: #bfa;width: 100px;height: 100px">

    </div>
    <button id="btn1">向下滑动</button>
    <br>
    <button id="btn2">向上滑动</button>
    <br>
    <button id="btn3">向上/向下滑动</button>
    <br>
</body>
</html>
3.淡入淡出动画

实现淡入动画效果方法:fadeIn()

实现淡出动画效果方法:fadeOut()

实现淡入淡出切换效果方法:fadeToggle()

实现淡入到指定透明度效果方法:fadeTo(

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                $('div').fadeIn(2000);
            });

            $('#btn2').click(function(){
                $('div').fadeOut(2000);
            });

            $('#btn3').click(function(){
                $('div').fadeToggle(2000);
            });

            $('#btn4').click(function(){
                $('div').fadeTo(3000,0.3);
            });
        })
    </script>
</head>
<body>
    <div style="width: 100px;height: 100px;background: #bfa">

    </div>
    <button id="btn1">淡入</button>
    <br>
    <button id="btn2">淡出</button>
    <br>
    <button id="btn3">淡入/淡出</button>
    <br>
    <button id="btn4">淡入到指定透明度</button>
</body>
</html>
4.自定义动画
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $("#go").click(function(){
                $("#block").animate({
                    width: "500px",
                    height: "500px",
                    fontSize: "10em"
                }, 1000);
            });
        })
    </script>
</head>
<body>
    <button id="go">Run</button>
    <div id="block">Hello!</div>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值