jQuery

目录

1.jQuery介绍

2.jQuery的简单使用

5.jQuery对象的本质

6.DOM对象和jQuery对象相互转换

7.jQuery选择器

8.jQuery属性操作

1.html、text、val

2.attr、prop

9.jQuery的增删改


1.jQuery介绍

jQuery是JS和查询(Query),是辅助JS开发的JS类库
核心思想:write less, do more
jQuery是现在最流行的JS库,在世界前10000个访问最多的网站中,有55%在使用jQuery,它实现了很多浏览器的兼容问题

2.jQuery的简单使用

对比

使用JS写出onclick单击事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
            var btnObj = document.getElementById("btnId");
            btnObj.onclick = function () {
                alert("JS的单击事件");
            }
        }
    </script>
</head>
<body>
    <button id="btnId">SayHello</button>
</body>
</html>

使用jQuery写出onclick单击事件
1.复制合适版本的jQuery

 2.将jQuery拷贝进入你的工程

  

3.引入jquery

通过<script type="text/javascript" src="jquery-1.7.js"></script>引入jquery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {  //表示页面加载完成之后,相当于window.onload = function(){}
            var $btnObj = $("#btnId");  //表示按id查询标签对象(id选择器)
            $btnObj.click(function () { //绑定单击事件
                alert("jQuery的单击事件");
            });
        });
    </script>
</head>
<body>
    <button id="btnId">SayHello</button>
</body>
</html>

3.jQuery的函数核心

$是jQuery的核心函数,能完成jQuery的很多功能。$()就是调用$这个函数
1、传入参数为函数时,在文档加载完成后执行这个函数
2、传入参数为HTML字符串时,根据这个字符串创建元素节点对象
3、传入参数为选择器字符串时,根据这个字符串查找元素节点对象
4、传入参数为DOM对象时,将DOM对象包装为jQuery对象返回

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            alert("作用一");
            //作用二
            $("<div>" +                    //不用再定义div和span标签
                "        <span>div-span1</span>" +
                "        <span>div-span2</span>" +
                "    </div>").appendTo("body");
            //作用三
            alert($("button").length);     //标签选择器
            //作用四
            var btnObj = document.getElementById("btn01");
            alert(btnObj);                 
            alert($(btnObj));              //DOM对象包装成jQuery对象返回
        });
    </script>
</head>
<body>
    <button id="btn01">按钮1</button>
    <button>按钮2</button>
    <button>按钮3</button>
</body>
</html>


4.区分jQuery对象和DOM对象

jQuery对象

1.通过jQuery提供的API创建的对象,是jQuery对象
alert($("<h1></h1>"));
2.通过jQuery包装的DOM对象,是jQuery对象
var btnObj = document.getElementById("btn01");       btnObj是dom对象
alert($(btnObj));                                                                包装后为jQuery对象
3.通过jQuery提供的API查询到的对象,是jQuery对象
alert($("#btn01"));

jQuery对象alert出来的效果是:[object Object]

DOM对象

1.通过getElementById()查询出来的标签对象是DOM对象
2.通过getElementsByName()查询出来的标签对象是DOM对象
3.通过getElementsByTagName()查询出来的标签对象是DOM对象
4.通过createElement()方法创建的对象,是DOM对象

DOM对象alert出来的效果是:[object HTML标签名Element]

jQuery对象和DOM对象不能使用对方的属性和方法
例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
//正确
        //document.getElementById("btn01").innerHTML = "Hello Javaweb";//DOM对象的属性和方法

        //$("#btn01").click(function () {                           //jQuery对象的属性和方法
        //     alert("Hello Javaweb");
        // });

//错误
        //$("#btn01").innerHTML = "Hello Javaweb";                   //不能混用

        //document.getElementById("btn01").click(function () {       //不能混用                    
        //     alert("Hello Javaweb");
        // });

    });
    </script>
</head>
<body>
    <div id="btn01">Hello World</div>
</body>
</html>

5.jQuery对象的本质

jQuery对象的本质是DOM对象的数组+jQuery提供的一系列功能函数

//运行过后可以看到$btns[i]在alert中的结果均为[object HTMLbuttonElement]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            var $btns = $("button");
            for(var i=0;i<$btns.length;i++){
            alert($btns[i]);
            }
        });
    </script>
</head>
<body>
        <button id="dom2dom">用DOM调用DOM</button>
        <button id="dom2jQuery">用DOM调用jQuery</button>
        <button id="jQuery2jQuery">用jQuery调用jQuery</button>
        <button id="jQuery2dom">用jQuery 调用DOM</button>
</body>
</html>

6.DOM对象和jQuery对象相互转换

1.DOM对象转化为jQuery对象
        1、先有DOM对象
        2、$ ( DOM对象 )   就可以转化为 jQuery 对象

2.jQuery对象转化为DOM对象
        1、先有jQuery对象
        2、jQuery对象【下标】取出相应的DOM对象

 例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
    /*DOM*/ alert(document.getElementById("btn01"));
    /*转化*/
    /*jQuery*/alert($(document.getElementById("btn01")))

    /*jQuery*/ alert($(document.getElementById("btn01")))
    /*转化*/
    /*DOM*/alert($(document.getElementById("btn01"))[0])
        });
    </script>
</head>
<body>
    <div id="btn01">Hello World</div>
</body>
</html>

7.jQuery选择器

基本选择器

名称用法描述
ID选择器$("#id")获取指定ID的元素
全选选择器$('*')匹配所有元素
类选择器$(".class")获取同一类的元素
标签选择器$("div")获取同一类标签的所有元素
并集选择器$("div,p,li")选取多个元素
交集选择器$("li.current")交集元素

层级选择器

子代选择器$("ul>li");使用>号,获取儿子层级的元素;不会获取孙子层级的元素
后代选择器$("ul li");使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子层级等

筛选选择器

语法用法描述
:first$('li:first')获取第一个li元素
:last$('li:last')获取最后一个li元素
:eq(index)$("li:eq(2)")获取到的li元素中,选择索引号为2的元素,索引号index从0开始
:odd$("li:odd")获取到的li元素中,选择索引号为奇数的元素
:even$("li:even")获取到的li元素中,选择索引号为偶数的元素

8.jQuery属性操作

1.html、text、val

html()   可以设置和获取起始标签和结束标签中的内容。  与dom属性innerHTML一样
text()    可以设置和获取起始标签和结束标签中的文本。  与dom属性inneText一样
val()     可以设置和获取表单项的value属性值。               与dom属性value一样

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            // //不传参数是获取,传递参数是设置
            // alert($("div").html());
            // $("div").html("<h1>Hello</h1>");
            // //结果为Hello

            // alert($("div").text());
            // $("div").text("<h1>Hello</h1>");
            // //结果为<h1>Hello</h1>

            //不传参
            // $("button").click(function () {
            //     alert($("#username").val());
            // });

            //传参
            // $("button").click(function () {
            //     alert($("#username").val());
            //      $("#username").val("111")
            // });
        });
    </script>
</head>
<body>
    <div>div标签
        <span>
            div中的span标签
        </span>
    </div>
    <input type="text" name="username" id="username"/>
    <button>按钮</button>
</body>
</html>

val()的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            $(":checkbox").val(["checkbox1","checkbox2"])
        });
    </script>
</head>
<body>
    单选:
    <input name="radio" type="radio" value="radio1"/>radio1
    <input name="radio" type="radio" value="radio2"/>radio2
    <br/>
    多选:
    <input name="checkbox" type="checkbox" value="checkbox1"/>checkbox1
    <input name="checkbox" type="checkbox" value="checkbox2"/>checkbox2
    <input name="checkbox" type="checkbox" value="checkbox3"/>checkbox3
    <br/>
    下拉多选:
    <select id="multiple" multiple="multiple" size="4">
        <option value="mul1">mul1</option>
        <option value="mul2">mul2</option>
        <option value="mul3">mul3</option>
        <option value="mul4">mul4</option>
    </select>
    <br/>
    下拉单选:
    <select id="single">
        <option value="sin1">sin1</option>
        <option value="sin2">sin2</option>
        <option value="sin3">sin3</option>
    </select>
</body>
</html>

2.attr、prop

attr()均可以设置和获取属性的值,不推荐操作checked、readOnly、selected、disabled等等
        attr()可以操作非标准的属性,如自定义属性

prop()均可以设置和获取属性的值,只推荐操作checked、readOnly、selected、disabled等等
区别:
attr()和prop()的作用是选中获取属性值,要求对此标签进行选中。
在查询的标签中,当attr("")中的属性此标签没有,则alert返回undefined(未定义),并非是未选中,因此官方认为这是一个错误,只需要将attr改为prop,则alert返回false(失败),对结果更直观。

alert($(":checkbox").attr("value"));
alert($(":checkbox").prop("value"));

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            //attr
            alert($(":checkbox:first").attr("value"));//获取value的值
            $(":checkbox:first").attr("name","abc");//重新设置已定义属性的值
            $(":checkbox:first").attr("abc","abcd");//设置自定义属性的值
        });
    </script>
</head>
<body>
    多选:
    <input name="checkbox" type="checkbox" value="checkbox1"/>checkbox1
    <input name="checkbox" type="checkbox" value="checkbox2"/>checkbox2
    <input name="checkbox" type="checkbox" value="checkbox3"/>checkbox3
    <br/>
</body>
</html>

9.jQuery的增删改

内部插入:
appendTo()                 a.appendTo(b)             把a插入到每一个b子元素末尾,成为最后一个子元素
prependTo()                a.prependTo(b)            把a插到每一个b子元素前面,成为第一个子元素

外部插入:
insertAfter()                a.insertAfter(b)                得到ba
insertBefore()             a.insertBefore(b)             得到ab

替换:
replaceWith()             a.replaceWith(b)                用b替换a,一个b替换所有a
replaceAll()                a.replaceAll(b)                   用a替换所有的b

删除:
remove()                    a.remove()                        删除a标签
empty()                      a.empty()                          清空a标签的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            $("<h1>World</h1>").appendTo("div");
            $("<h1>World</h1>").prependTo("div");
            $("<h1>World</h1>").insertAfter("div");
            $("<h1>World</h1>").insertBefore("div");
            $("div").replaceWith($("<h1>World</h1>");
            $("<h1>World</h1>").replaceAll("div");
            $("div").remove();
            $("div").empty();
        });
    </script>
</head>
<body>
    <div>Hello</div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值