前端基础之:JQuery(可编辑版)
一 jQuery是什么?
[1] jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。
[2] jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!
[3] 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器
[4] jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。
[5] jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
二 什么是jQuery对象?
jQuery 对象就是通过jQuery包装DOM对象后产生的对象。jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#test”).html();
- $("#test").html()
- 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法
- 这段代码等同于用DOM实现代码: document.getElementById(" test ").innerHTML;
- 虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错
- 约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$.
- var $variable = jQuery 对象
- var variable = DOM 对象
- $variable[0]:jquery对象转为dom对象 $("#msg").html(); $("#msg")[0].innerHTML
jquery的基础语法:$(selector).action()
参考:http://jquery.cuishifeng.cn/
三 寻找元素(选择器和筛选器)
3.1 选择器
3.1.1 基本选择器
- $("*") $("#id") $(".class") $("element") $(".class,p,div")
3.1.2 层级选择器
- $(".outer div") $(".outer>div") $(".outer+div") $(".outer~div")
3.1.3 基本筛选器
- $("li:first") $("li:eq(2)") $("li:even") $("li:gt(1)")
3.1.4 属性选择器
- $('[id="div1"]') $('["alex="sb"][id]')
3.1.5 表单选择器
- $("[type='text']")----->$(":text") 注意只适用于input标签 : $("input:checked")
3.1.6 表单属性选择器
- :enabled
- :disabled
- :checked
- :selected
- <body>
- <form>
- <input type="checkbox" value="123" checked>
- <input type="checkbox" value="456" checked>
- <select>
- <option value="1">Flowers</option>
- <option value="2" selected="selected">Gardens</option>
- <option value="3" selected="selected">Trees</option>
- <option value="3" selected="selected">Trees</option>
- </select>
- </form>
- <script src="jquery.min.js"></script>
- <script>
- // console.log($("input:checked").length); // 2
- // console.log($("option:selected").length); // 只能默认选中一个,所以只能lenth:1
- $("input:checked").each(function(){
- console.log($(this).val())
- })
- </script>
- </body>
3.2 筛选器
3.2.1 过滤筛选器
- $("li").eq(2) $("li").first() $("ul li").hasclass("test")
3.2.2 查找筛选器
- 查找子标签: $("div").children(".test") $("div").find(".test")
- 向下查找兄弟标签: $(".test").next() $(".test").nextAll()
$(".test").nextUntil()- 向上查找兄弟标签: $("div").prev() $("div").prevAll()
$("div").prevUntil()- 查找所有兄弟标签: $("div").siblings()
- 查找父标签: $(".test").parent() $(".test").parents()
$(".test").parentUntil()
四 操作元素(属性,css,文档处理)
4.1 事件
页面载入
- ready(fn) // 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
- $(document).ready(function(){}) -----------> $(function(){})
事件绑定
- //语法: 标签对象.事件(函数)
- eg: $("p").click(function(){})
事件委派:
- $("").on(eve,[selector],[data],fn) // 在选择元素上绑定一个或多个事件的事件处理函数。
- <ul>
- <li>1</li>
- <li>2</li>
- <li>3</li>
- </ul>
- <hr>
- <button id="add_li">Add_li</button>
- <button id="off">off</button>
- <script src="jquery.min.js"></script>
- <script>
- $("ul li").click(function(){
- alert(123)
- });
- $("#add_li").click(function(){
- var $ele=$("<li>");
- $ele.text(Math.round(Math.random()*10));
- $("ul").append($ele)
- });
- // $("ul").on("click","li",function(){
- // alert(456)
- // })
- $("#off").click(function(){
- $("ul li").off()
- })
- </script>
事件切换
hover事件:
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
over:鼠标移到元素上要触发的函数
out:鼠标移出元素要触发的函数
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- *{
- margin: 0;
- padding: 0;
- }
- .test{
- width: 200px;
- height: 200px;
- background-color: wheat;
- }
- </style>
- </head>
- <body>
- <div class="test"></div>
- </body>
- <script src="jquery.min.js"></script>
- <script>
- // function enter(){
- // console.log("enter")
- // }
- // function out(){
- // console.log("out")
- // }
- // $(".test").hover(enter,out)
- $(".test").mouseenter(function(){
- console.log("enter")
- });
- $(".test").mouseleave(function(){
- console.log("leave")
- });
- </script>
- </html>
4.2 属性操作
- --------------------------CSS类
- $("").addClass(class|fn)
- $("").removeClass([class|fn])
- --------------------------属性
- $("").attr();
- $("").removeAttr();
- $("").prop();
- $("").removeProp();
- --------------------------HTML代码/文本/值
- $("").html([val|fn])
- $("").text([val|fn])
- $("").val([val|fn|arr])
- ---------------------------
- $("#c1").css({"color":"red","fontSize":"35px"})
attr方法使用:
- <input id="chk1" type="checkbox" />是否可见
- <input id="chk2" type="checkbox" checked="checked" />是否可见
- <script>
- //对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
- //对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
- //像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此
- //需要使用prop方法去操作才能获得正确的结果。
- // $("#chk1").attr("checked")
- // undefined
- // $("#chk1").prop("checked")
- // false
- // ---------手动选中的时候attr()获得到没有意义的undefined-----------
- // $("#chk1").attr("checked")
- // undefined
- // $("#chk1").prop("checked")
- // true
- console.log($("#chk1").prop("checked"));//false
- console.log($("#chk2").prop("checked"));//true
- console.log($("#chk1").attr("checked"));//undefined
- console.log($("#chk2").attr("checked"));//checked
- </script>
4.3 each循环
我们知道,
- $("p").css("color","red")
是将css操作加到所有的标签上,内部维持一个循环;但如果对于选中标签进行不同处理,这时就需要对所有标签数组进行循环遍历啦
jquery支持两种循环方式:
方式一
格式:$.each(obj,fn)
- li=[10,20,30,40];
- dic={name:"yuan",sex:"male"};
- $.each(li,function(i,x){
- console.log(i,x)
- });
方式二
格式:$("").each(fn)
- $("tr").each(function(){
- console.log($(this).html())
- })
其中,$(this)代指当前循环标签。
each扩展
- /*
- function f(){
- for(var i=0;i<4;i++){
- if (i==2){
- return
- }
- console.log(i)
- }
- }
- f(); // 这个例子大家应该不会有问题吧!!!
- //-----------------------------------------------------------------------
- li=[11,22,33,44];
- $.each(li,function(i,v){
- if (v==33){
- return ; // ===试一试 return false会怎样?
- }
- console.log(v)
- });
- //------------------------------------------
- // 大家再考虑: function里的return只是结束了当前的函数,并不会影响后面函数的执行
- //本来这样没问题,但因为我们的需求里有很多这样的情况:我们不管循环到第几个函数时,一旦return了,
- //希望后面的函数也不再执行了!基于此,jquery在$.each里又加了一步:
- for(var i in obj){
- ret=func(i,obj[i]) ;
- if(ret==false){
- return ;
- }
- }
- // 这样就很灵活了:
- // <1>如果你想return后下面循环函数继续执行,那么就直接写return或return true
- // <2>如果你不想return后下面循环函数继续执行,那么就直接写return false
- // ---------------------------------------------------------------------
4.4 文档节点处理
- //创建一个标签对象
- $("<p>")
- //内部插入
- $("").append(content|fn) ----->$("p").append("<b>Hello</b>");
- $("").appendTo(content) ----->$("p").appendTo("div");
- $("").prepend(content|fn) ----->$("p").prepend("<b>Hello</b>");
- $("").prependTo(content) ----->$("p").prependTo("#foo");
- //外部插入
- $("").after(content|fn) ----->$("p").after("<b>Hello</b>");
- $("").before(content|fn) ----->$("p").before("<b>Hello</b>");
- $("").insertAfter(content) ----->$("p").insertAfter("#foo");
- $("").insertBefore(content) ----->$("p").insertBefore("#foo");
- //替换
- $("").replaceWith(content|fn) ----->$("p").replaceWith("<b>Paragraph. </b>");
- //删除
- $("").empty()
- $("").remove([expr])
- //复制
- $("").clone([Even[,deepEven]])
4.5 动画效果
显示隐藏
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script src="jquery-2.1.4.min.js"></script>
- <script>
- $(document).ready(function() {
- $("#hide").click(function () {
- $("p").hide(1000);
- });
- $("#show").click(function () {
- $("p").show(1000);
- });
- //用于切换被选元素的 hide() 与 show() 方法。
- $("#toggle").click(function () {
- $("p").toggle();
- });
- })
- </script>
- <link type="text/css" rel="stylesheet" href="style.css">
- </head>
- <body>
- <p>hello</p>
- <button id="hide">隐藏</button>
- <button id="show">显示</button>
- <button id="toggle">切换</button>
- </body>
- </html>
滑动
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script src="jquery-2.1.4.min.js"></script>
- <script>
- $(document).ready(function(){
- $("#slideDown").click(function(){
- $("#content").slideDown(1000);
- });
- $("#slideUp").click(function(){
- $("#content").slideUp(1000);
- });
- $("#slideToggle").click(function(){
- $("#content").slideToggle(1000);
- })
- });
- </script>
- <style>
- #content{
- text-align: center;
- background-color: lightblue;
- border:solid 1px red;
- display: none;
- padding: 50px;
- }
- </style>
- </head>
- <body>
- <div id="slideDown">出现</div>
- <div id="slideUp">隐藏</div>
- <div id="slideToggle">toggle</div>
- <div id="content">helloworld</div>
- </body>
- </html>
淡入淡出
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script src="jquery-2.1.4.min.js"></script>
- <script>
- $(document).ready(function(){
- $("#in").click(function(){
- $("#id1").fadeIn(1000);
- });
- $("#out").click(function(){
- $("#id1").fadeOut(1000);
- });
- $("#toggle").click(function(){
- $("#id1").fadeToggle(1000);
- });
- $("#fadeto").click(function(){
- $("#id1").fadeTo(1000,0.4);
- });
- });
- </script>
- </head>
- <body>
- <button id="in">fadein</button>
- <button id="out">fadeout</button>
- <button id="toggle">fadetoggle</button>
- <button id="fadeto">fadeto</button>
- <div id="id1" style="display:none; width: 80px;height: 80px;background-color: blueviolet"></div>
- </body>
- </html>
回调函数
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script src="jquery-2.1.4.min.js"></script>
- </head>
- <body>
- <button>hide</button>
- <p>helloworld helloworld helloworld</p>
- <script>
- $("button").click(function(){
- $("p").hide(1000,function(){
- alert($(this).html())
- })
- })
- </script>
- </body>
- </html>
4.6 css操作
css位置操作
- $("").offset([coordinates])
- $("").position()
- $("").scrollTop([val])
- $("").scrollLeft([val])
示例1:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- .test1{
- width: 200px;
- height: 200px;
- background-color: wheat;
- }
- </style>
- </head>
- <body>
- <h1>this is offset</h1>
- <div class="test1"></div>
- <p></p>
- <button>change</button>
- </body>
- <script src="jquery-3.1.1.js"></script>
- <script>
- var $offset=$(".test1").offset();
- var lefts=$offset.left;
- var tops=$offset.top;
- $("p").text("Top:"+tops+" Left:"+lefts);
- $("button").click(function(){
- $(".test1").offset({left:200,top:400})
- })
- </script>
- </html>
示例2:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- *{
- margin: 0;
- }
- .box1{
- width: 200px;
- height: 200px;
- background-color: rebeccapurple;
- }
- .box2{
- width: 200px;
- height: 200px;
- background-color: darkcyan;
- }
- .parent_box{
- position: relative;
- }
- </style>
- </head>
- <body>
- <div class="box1"></div>
- <div class="parent_box">
- <div class="box2"></div>
- </div>
- <p></p>
- <script src="jquery-3.1.1.js"></script>
- <script>
- var $position=$(".box2").position();
- var $left=$position.left;
- var $top=$position.top;
- $("p").text("TOP:"+$top+"LEFT"+$left)
- </script>
- </body>
- </html>
示例3:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- body{
- margin: 0;
- }
- .returnTop{
- height: 60px;
- width: 100px;
- background-color: peru;
- position: fixed;
- right: 0;
- bottom: 0;
- color: white;
- line-height: 60px;
- text-align: center;
- }
- .div1{
- background-color: wheat;
- font-size: 5px;
- overflow: auto;
- width: 500px;
- height: 200px;
- }
- .div2{
- background-color: darkgrey;
- height: 2400px;
- }
- .hide{
- display: none;
- }
- </style>
- </head>
- <body>
- <div class="div1 div">
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- <h1>hello</h1>
- </div>
- <div class="div2 div"></div>
- <div class="returnTop hide">返回顶部</div>
- <script src="jquery-3.1.1.js"></script>
- <script>
- $(window).scroll(function(){
- var current=$(window).scrollTop();
- console.log(current);
- if (current>100){
- $(".returnTop").removeClass("hide")
- }
- else {
- $(".returnTop").addClass("hide")
- }
- });
- $(".returnTop").click(function(){
- $(window).scrollTop(0)
- });
- </script>
- </body>
- </html>
尺寸操作
- $("").height([val|fn])
- $("").width([val|fn])
- $("").innerHeight()
- $("").innerWidth()
- $("").outerHeight([soptions])
- $("").outerWidth([options])
示例:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- *{
- margin: 0;
- }
- .box1{
- width: 200px;
- height: 200px;
- background-color: wheat;
- padding: 50px;
- border: 50px solid rebeccapurple;
- margin: 50px;
- }
- </style>
- </head>
- <body>
- <div class="box1">
- DIVDIDVIDIV
- </div>
- <p></p>
- <script src="jquery-3.1.1.js"></script>
- <script>
- var $height=$(".box1").height();
- var $innerHeight=$(".box1").innerHeight();
- var $outerHeight=$(".box1").outerHeight();
- var $margin=$(".box1").outerHeight(true);
- $("p").text($height+"---"+$innerHeight+"-----"+$outerHeight+"-------"+$margin)
- </script>
- </body>
- </html>
扩展方法 (插件机制)
jQuery.extend(object)
扩展jQuery对象本身。
用来在jQuery命名空间上增加新函数。
在jQuery命名空间上增加两个函数:
- <script>
- jQuery.extend({
- min: function(a, b) { return a < b ? a : b; },
- max: function(a, b) { return a > b ? a : b; }
- });
- jQuery.min(2,3); // => 2
- jQuery.max(4,5); // => 5
- </script>
jQuery.fn.extend(object)
扩展 jQuery 元素集来提供新的方法(通常用来制作插件)
增加两个插件方法:
- <body>
- <input type="checkbox">
- <input type="checkbox">
- <input type="checkbox">
- <script src="jquery.min.js"></script>
- <script>
- jQuery.fn.extend({
- check: function() {
- $(this).attr("checked",true);
- },
- uncheck: function() {
- $(this).attr("checked",false);
- }
- });
- $(":checkbox:gt(0)").check()
- </script>
- </body>
前端基础之:JQuery(可编辑版)的更多相关文章
- 进击的Python【第十六章】:Web前端基础之jQuery
进击的Python[第十六章]:Web前端基础之jQuery 一.什么是 jQuery ? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多&quo ...
- 前端第四篇---前端基础之jQuery
前端第四篇---前端基础之jQuery 一.jQuery介绍 二.jQuery对象 三.jQuery基础语法 四.事件 五.动画效果 六.补充each 一.jQuery简介 1.jQuery介绍 jQ ...
- Python学习(二十三)—— 前端基础之jQuery
转载自http://www.cnblogs.com/liwenzhou/p/8178806.html 一.jQuery入门 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQue ...
- 前端基础 之 jQuery
浏览目录 jQuery介绍 jQuery的优势 jQuery对象 jQuery内容 一.jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户 ...
- 前端基础之jQuery入门 01
jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交互, ...
- 前端基础之jQuery事件
一.常用事件 click(function(){...}) hover(function(){...}) blur(function(){...}) focus(function(){...}) ch ...
- 四丶前端基础之jquery
知识预览 一 jQuery是什么? 二 什么是jQuery对象? 三 寻找元素(选择器和筛选器) 四 操作元素(属性,css,文档处理) 扩展方法 (插件机制) 回到顶部 一 jQuery是什么? [ ...
- 前端基础之jQuery
JavaScript和jQuery的区别 JavaScript是一门编程语言,我们用它来编写客户端浏览器脚本 jQuery是javascript的一个库,包含多个可重用的函数,用来辅助我们简化java ...
- 前端基础之JQuery - day15
写在前面 上课第15天,打卡: 张国臂掖,以通西域: ########### # 课上简书 # ########## http://jquery.cuishifeng.cn/index.html JQ ...
随机推荐
- Mac下忘记mysql的root密码
cd /usr/local/mysql/bin sudo su sudo /usr/local/mysql/support-files/mysql.server stop # ./mysqld_saf ...
- [LOJ6198]谢特
loj description 给你一个字符串和一个数组\(w_i\),定义\(\mbox{LCP}(i,j)\)为\(i,j\)两个后缀的最长公共前缀.求\(\max_{i,j}\mbox{LCP} ...
- CH3301 同余方程
题意 3301 同余方程 0x30「数学知识」例题 描述 求关于 x的同余方程 ax ≡ 1(mod b) 的最小正整数解. 输入格式 输入只有一行,包含两个正整数a,b,用一个空格隔开. 输出格式 ...
- Linux配置Nginx+Tomcat负载均衡
cd /usr/local/tomcat1/webapps/ROOT/ tar -zxvf nginx-1.14.2.tar.gz -C /usr/local 一.Linux配置Nginx 一.下载N ...
- mark TODO:完善拦截规则;日志分析;web仪表盘展示;终极目标动态配置规则
- 02 - Unit02:登录功能
需求实现步骤 发送Ajax请求 服务器处理 Ajax回调处理 登录功能 发送Ajax请求 绑定事件:"登录"按钮的单击事件 获取参数:用户名userName和密码password ...
- Python 迭代对象、迭代器、生成器
原文出处: liuzhijun 本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文 ...
- (转)2009-05-25 22:12 Outlook2007选择发送帐号
本文转载自:http://hi.baidu.com/vugwggogodaenqe/item/c95c6d019457a2d873e676ec outlook2007可以用程序选择发送帐号,其他的版本 ...
- Python链表与反链表
# -*- coding:utf8 -*- #/usr/bin/env python class Node(object): def __init__(self, data, pnext = None ...
- Ubuntu下VIM使用指南
基本命令: Esc:VIM中的万能功能键之一,基本上任何时候按这个键,都可以返回VIM的普通状态. i:在普通状态下按i可以进入“插入”编辑状态,这个时候按方向键移动光标,在想要输入的地方输入字符,用 ...