前端笔记5 JQuery 语法及应用

JQuery 概念

jQuery是一个快速、简洁的JavaScript框架 , (JavaScript代码库 )

	jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
	jQuery的核心特性可以总结为:
	1- 具有独特的链式语法和短小清晰的多功能接口;
	2- 具有高效灵活的css选择器,并且可对CSS选择器进行扩展;
	3- 拥有便捷的插件扩展机制和丰富的插件。
	4- jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

2006年1月14日,John正式宣布以jQuery的名称发布自己的程序库

jQuery能做的JavaScript也都能做,但使用jQuery能大幅提高开发效率

JQurey 基本语法

文件下载

JQuery的版本下载 (jquery下载所有版本(实时更新))

http://www.jq22.com/jquery-info122

JQuery的版本 类似于 Inter 芯片版本号

jquery.js (开发版)和 jquery.min.js(发布版) 区别
内容完全一致 , 区别在于文本格式
jquery.js 格式 良好的, 有利于程序员进行阅读 适用于测试、学习和开发
jquery.min.js 省略了多余的换行和空格 , 使文件尽量的做到体积最小
文件体积小, 有利于加快文件在网络中的传输速度(适用于发布的产品和项目)

文件引入

<!-- 引入外部JQuery 文件 -->
<script src="js/jquery.js" type="text/javascript"></script>

页面加载函数

主要在页面加载完毕之后, 再去执行函数中的内容

使用加载函数的原因

script 标签 在对象标签之前 , 获取对象不起作用

<script>
    var btn = document.getElementById("btn");
    btn.onclick = function(){
        alert(123);
    }
</script>
<button id="btn">测试</button>

script 标签 在对象标签之后,才起作用

<button id="btn">测试</button>
<script>
    var btn = document.getElementById("btn");
    btn.onclick = function(){
        alert(123);
    }
</script>

出现这种情况的原因

程序从上到下开始解释运行

对象标签还未加载, 就是用 JS代码 获取该对象 , 失败

window.onload JS原生页面加载函数

// 使用window.onload 优化代码
<script>
    // 页面加载完毕之后, 执行该函数
    window.onload = function(){
        var btn = document.getElementById("btn");
        btn.onclick = function(){
            alert(123);
        }
    }
</script>
<button id="btn">测试</button>

JQuery 的页面加载函数

JQuery(document).ready(匿名函数);
$(document).ready(匿名函数);
$(匿名函数);
<!-- 引入外部JQuery 文件 -->
<script src="js/jquery.js"></script>
<script>
$(function(){
    var btn = document.getElementById("btn");
    btn.onclick = function(){
        alert(123);
    }
});
</script>
<button id="btn">测试</button>

页面加载函数对比

JQuery 和 window.onload

区别 JQuery window.onload
执行顺序 先执行 后执行
执行时机 网页中所有DOM文档结构绘制完毕后即刻执行,可能与DOM元素关联的内容(图片、flash、视频等)并没有加载完 必须等待网页中所有的内容加载完毕后(包括图片、flash、视频等)才能执行
编写个数 可以书写多个页面加载函数, 按顺序执行 只能书写一个, 如果存在多个, 后写的覆盖之前的

语法

工厂函数

$() 具有多种用法

选择器

selector $(“CSS选择器”) 获取指定的 DOM 元素

支持CSS 选择器 $("#id") $(".class") $(“标签”)

方法action()

核心方法
文档处理
效果方法

事件方法

语法 和 DOM的区别 没有 on 关键字

$("").click(function(){
    // 事件绑定的内容
});

操作样式常用方法

addClass() 添加类名

css() 给元素设置样式

// 给div 添加 一组样式
$(".dv").css("height","300px");
// 添加多组样式
$(".dv").css({"height":"300px","width":"300px"});

添加一组样式

$("").css("a","a1")

添加多组样式

$("").css({"a":"a1","b":"b1","c":"c1"})

jQuery代码风格

“$”等同于“ jQuery ”

链式操作

对一个对象进行多重操作,并将操作结果返回给该对象

隐式迭代

通过 选择器获取对象之后, 如果获取的是一个数组对象, 无需手动遍历, 自行迭代

<ul>
    <li>宫骏腾来电话啦</li>
    <li>宫骏腾来电话啦</li>
    <li>宫骏腾来电话啦</li>
    <li>宫骏腾来电话啦</li>
    <li>宫骏腾来电话啦</li>
    <li>宫骏腾来电话啦</li>
</ul>
</body>
<script>
// 原始JS 的书写方式
    var lis = document.getElementsByTagName("li");
    for(let i in lis){
        lis[i].style.backgroundColor = "green";
    }
// 使用JQ 的方式
	$("li").css("background-color","red");
</script>

DOM对象和jQuery对象

DOM对象和jQuery对象分别拥有一套独立的方法,不能混用

命名的时候, 最好养成习惯如果一个对象是使用Jquery 的方式获取的, 最好在变量前添加 $ , 表示这是一个JQuery对象

变量名取值
DOM对象  var p = document.getElememtById("pid");
JQuery   var $p = $("#pid");
$("#title").html( );
等同于
document.getElementById("title").innerHTML; 

对象之间相互转换

DOM 转换为JQ对象

$(Dom对象)  就成为了 JQuery 对象

JQ 对象 转换为 DOM对象

$("p")[0]  就转换成为了 DOM对象
$("p").get(0);

JQuery 选择器

CSS选择器

基本

分类

标签

id
全局
并集
交集

<script>
    $(function(){
        /*$("h1").css("background-color","red");
        $(".dv").css("background-color","green");
        $("#pid").css("background-color","blue");*/
        $(".dv,#pid").css("background-color","green");
        $("h1.dv").css("background-color","green");
    });
</script>
</head>
<body>
    <div class="dv">人间四月天</div>
    <p id="pid">人间四月天</p>
    <h1>人间四月天</h1>
    <h1 class="dv">人间四月天</h1>
</body>

层级

后代选择器
子选择器
相邻元素选择器
同辈元素选择器

环境准备

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body>div,p{
            width: 100px;
            height: 100px;
            border: 1px solid red;
            float: left;
            margin-left: 20px;
        }
        div>div,p>div{
            width: 40px;
            height: 40px;
            border: 1px solid blue;
            float: left;
            margin-left: 5px;
        }

    </style>

</head>
<body>
<br><br>
    <button id="btn1">后代选择器</button>  &nbsp; &nbsp; &nbsp; &nbsp;
    <button id="btn2">子选择器</button>  &nbsp; &nbsp; &nbsp; &nbsp;
    <button id="btn3">相邻元素选择器</button>  &nbsp; &nbsp; &nbsp; &nbsp;
    <button id="btn4">同辈元素选择器</button>  &nbsp; &nbsp; &nbsp; &nbsp;
    <br><br>
    <hr>
    <br><br>
    <div class="father1">
        <div class="son11"></div>
        <div class="son12"></div>
    </div>
    <div class="father2">
        <div class="son21"></div>
        <div class="son22"></div>
    </div>
    <div class="father3">
        <div class="son31"></div>
        <div class="son32"></div>
    </div>
    <div class="father4">
        <div class="son41"></div>
        <div class="son42"></div>
    </div>

    <p class="father5">

    </p>
</body>

案例代码


<script src="js/jquery.js"></script>
<script>
   $(function(){
       $("#btn1").click(function(){
           $("body div").css("background-color","gold");
       });
       $("#btn2").click(function(){
           $("div>div").css("background-color","gold");
       });
       $("#btn3").click(function(){
           $(".father1+div").css("background-color","gold");
       });
       $("#btn4").click(function(){
           $(".father2~div").css("background-color","gold");
       });
   });

属性

环境准备

<br>
<button id="btn1">包含属性</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<button id="btn2">属性以什么开头</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<button id="btn3">属性以什么结尾</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<button id="btn4">属性包含什么</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<br><br>
<hr>
用户 <input type="text" name="username"> <br><br>
密码 <input type="password" name="userpassword">  <br><br>
邮箱 <input type="email" name="email">    <br><br>
电话 <input type="text">  <br><br>
地址 <input type="text">  <br><br>

案例代码

    <script src="js/jquery.js"></script>
    <script>
        $(function(){
            $("#btn1").click(function(){
                $("input[name]").css("background-color","red");
            });
            $("#btn2").click(function(){
                $("input[name^='user']").css("background-color","red");
            });
            $("#btn3").click(function(){
                $("input[name$='word']").css("background-color","red");
            });
            $("#btn4").click(function(){
                $("input[name*='a']").css("background-color","red");
            });

        });
    </script>
</head>
<body>
<br>
<button id="btn1">包含属性</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<button id="btn2">属性以什么开头</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<button id="btn3">属性以什么结尾</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<button id="btn4">属性包含什么</button>  &nbsp; &nbsp; &nbsp; &nbsp;
<br><br>
<hr>
    用户 <input type="text" name="username"> <br><br>
    密码 <input type="password" name="userpassword">  <br><br>
    邮箱 <input type="email" name="email">    <br><br>
    电话 <input type="text" name="word">  <br><br>
    地址 <input type="text">  <br><br>
</body>

条件过滤选择器

基本过滤

:first
:last
:even
:odd
:eq(index)
:gt(index)
:lt(index)
:not(选择器)

环境准备

<style>
        *{
            margin: 0;
            padding: 0;
        }
        body>div,p{
            width: 100px;
            height: 100px;
            border: 1px solid red;
            float: left;
            margin-left: 20px;
        }
        div>div,p>div{
            width: 40px;
            height: 40px;
            border: 1px solid blue;
            float: left;
            margin-left: 5px;
            background-color: blue;
        }
    </style>
<body>
<br><br>
    <button id="btn1">测试first last</button>&nbsp;&nbsp;
    <button id="btn2">指定位置 </button>&nbsp;&nbsp;
    <button id="btn3">取反</button>&nbsp;&nbsp;
    <button id="btn4">间隔</button>&nbsp;&nbsp;
    <br>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值