java前端技术---jquery基础详解

来源:互联网 发布:超级红包群txt下载知新 编辑:程序博客网 时间:2024/06/05 20:39

一.jquery简介

  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互
 jQuery 的功能概括
1、html 的元素选取
2、html的元素操作
3、html dom遍历和修改
4、js特效和动画效果
5、css操作
6、html事件操作
7、ajax异步请求方式

二.jquery的安装

第一种:
从官网下载jquery插件,然后导入到工程文件里,然后在页面中引入
<script type="text/javascript" src="jquery/jquery-3.1.1.min.js"></script>

第二种
可以直接从网上引入
比如从百度cdn引入
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"/>

三.jquery语法

1.jquery对象:通过jQuery包装DOM对象后产生的对象。
 比如:$(“#test”).html()就相当于document.getElementById("test").innerHTML;
比较之后,你会发现jquery简化了好多
注意:虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错
约定:如果获取的是 jQuery 对象, 那么要在变量前面加上 $.
var $variable = jQuery 对象
var variable = DOM 对象

dom对象===>jquery对象

<script type="text/javascript" src="jquery/jquery-3.1.1.min.js"></script><body><input type="text" id="demo" value="你好"/><script type="text/javascript">var a=document.getElementById("demo");alert(a.value);//dom直接获取id,输出你好var $a=$("#demo");alert($a.val());//jquery获取id输出你好var $b=$(a);alert($b.val())//将已经获取id的dom对象转化为jquery对象,输出你好</script></body>

这里补充一点,获取id,还有一种方法,本人测验有效,直接var  $a=$(demo);
总结:对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象) 

jquery对象===>dom对象

<script type="text/javascript" src="jquery/jquery-3.1.1.min.js"></script><body><input type="text" id="demo" value="你好"/><script type="text/javascript">var $a=$(demo);alert($a.val());//jquery对象var b=$a[0];alert(b.value);//方法一.通过$对象[index]var c=$a.get(0);alert(c.value);//方法二.通过$对象.get(index)</script></body>

四.jquery选择器

选择器是 jQuery 的根基, 在 jQuery 中, 对事件处理, 遍历 DOM 和 Ajax 操作都依赖于选择器,关于选择器的详细介绍可以参考另一篇博客,jquery选择器详解

1.元素选择器
$("元素")
<script type="text/javascript">$(function (){$("button").click(function(){$("p").hide();})})</script><h2>这是一个标题</h2><p>这是一个段落。</p><p>这是另一个段落。</p><button>点我</button>

写jquery的一些语法一定不要跟dom操作的语法混一起,否则要报错.比如 dom点击操作是 .onclick=function(){
} 而jquery是.click(function(){ }),所以平时要多注意这些区别

2.id选择器
$("#id")
这个就不用举例子了,参考上面

3.类选择器
class          用法: $(”.myClass”)      返回值  集合元素
  说明: 这个标签是直接选择html代码中class=”myClass”的元素或元素组(因为在同一html页面中class是可以存在多个同样值的).

4.全选择器
*        用法: $(”*”)      返回值  集合元素
 说明: 匹配所有元素,多用于结合上下文来搜索

5.条件匹配
  selector1, selector2, selectorN      用法: $(”div,span,p.myClass”)    返回值  集合元素
 说明: 将每一个选择器匹配到的元素合并后一起返回.你可以指定任意多个选择器, 并将匹配到的元素合并到一个结果内.其中p.myClass是表示匹配元素
       p class=”myClass”
语法描述实例$("*")选取所有元素在线实例$(this)选取当前 HTML 元素在线实例$("p.intro")选取 class 为 intro 的 <p> 元素在线实例$("p:first")选取第一个 <p> 元素在线实例$("ul li:first")选取第一个 <ul> 元素的第一个 <li> 元素在线实例$("ul li:first-child")选取每个 <ul> 元素的第一个 <li> 元素在线实例$("[href]")选取带有 href 属性的元素在线实例$("a[target='_blank']")选取所有 target 属性值等于 "_blank" 的 <a> 元素在线实例$("a[target!='_blank']")选取所有 target 属性值不等于 "_blank" 的 <a> 元素在线实例$(":button")选取所有 type="button" 的 <input> 元素 和 <button> 元素在线实例$("tr:even")选取偶数位置的 <tr> 元素在线实例$("tr:odd")选取奇数位置的 <tr> 元素在线实例

五.jquery事件

常用的 jQuery 事件方法

1.文档就绪事件
$(document).ready(function(){    // 开始写 jQuery 代码... });
简化后
$(function(){    // 开始写 jQuery 代码... });

2.单击事件
click() 
click() 方法是当按钮点击事件被触发时会调用一个函数。 该函数在用户点击 HTML 元素时执行。
例如:点击p元素
$("p").click(function(){});

3.双击事件
dblclick()
当双击元素时,会发生 dblclick 事件。dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数:

4.mouseenter()
当鼠标指针穿过元素时,会发生 mouseenter 事件。mouseenter() 方法触发 mouseenter 事件,或规定当发生 mouseenter 事件时运行的函数:
<script>$(function(){  $("#p1").mouseenter(function(){    alert('您的鼠标移到了 id="p1" 的元素上!');  });});</script>

5.mouseleave()
顾名思义:鼠标离开触发的事件

6.mousedown()
鼠标移动在元素上并按下左键弹出的内容
$("#p1").mousedown(function(){    alert("鼠标在该段落上按下!");});

7.mouseup()
当在元素上松开鼠标按钮时,会发生 mouseup 事件。


8.hover()
hover()方法用于模拟光标悬停事件。
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
<script>$(document).ready(function(){    $("#p1").hover(function(){alert("你进入了 p1!");},function(){alert("拜拜! 现在你离开了 p1!");}    )});</script>

9.focus()
当元素获得焦点时,发生 focus 事件。
当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。

10.blur()
当元素离开焦点时,发生blur()事件
<script>$(document).ready(function(){  $("input").focus(function(){    $(this).css("background-color","#cccccc");  });  $("input").blur(function(){    $(this).css("background-color","#ffffff");  });});</script>

六.jquery效果

6.1.隐藏与显示
<script>$(document).ready(function(){  $("#hide").click(function(){    $("p").hide();//可以设置时间,速度的快慢,slow.normal,fast.毫秒数  });  $("#show").click(function(){    $("p").show();  });});</script></head><body><p>如果你点击“隐藏” 按钮,我将会消失。</p><button id="hide">隐藏</button><button id="show">显示</button></body>

想要更多具体的效果可以参考我上传的 jquery使用文档,有需要的时候可以查找,这里只是梳理下基础的常见的用法

可以将两个按钮合二为一,使用一个按钮就可以,可以使用 toggle() 方法来切换 hide() 和 show() 方法。
显示被隐藏的元素,并隐藏已显示的元素:

6.2.淡入与淡出
通过 jQuery,您可以实现元素的淡入淡出效果。 
jQuery 拥有下面四种 fade 方法: fadeIn() fadeOut() fadeToggle() fadeTo()

1.jQuery fadeIn() 方法
jQuery fadeIn() 用于淡入已隐藏的元素。
后面可以设置速度快慢
<script>$(document).ready(function(){  $("button").click(function(){    $("#div1").fadeIn();    $("#div2").fadeIn("slow");    $("#div3").fadeIn(3000);  });});</script>
2.jQuery fadeOut() 方法用于淡出可见元素。

3.jQuery fadeToggle() 方法
jQuery fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。

4.jQuery fadeTo() 方法
jQuery fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)。
<script>$(document).ready(function(){  $("button").click(function(){    $("#div1").fadeTo("slow",0.15);    $("#div2").fadeTo("slow",0.4);    $("#div3").fadeTo("slow",0.7);  });});</script>

6.3.jQuery 滑动方法
通过 jQuery,您可以在元素上创建滑动效果。
jQuery 拥有以下滑动方法:
  • slideDown()
向下滑动
<script> $(document).ready(function(){  $("#flip").click(function(){    $("#panel").slideDown("slow");  });});</script>

  • slideUp()
向上滑动
<script> $(document).ready(function(){  $("#flip").click(function(){    $("#panel").slideUp("slow");  });});</script> 
  • slideToggle()
在slideDown() 与 slideUp() 方法之间进行切换。

6.4.动画
jQuery 动画 - animate() 方法
jQuery animate() 方法用于创建自定义动画。
$(selector).animate({params},speed,callback);
  • 必需的 params 参数定义形成动画的 CSS 属性。
  • 可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
  • 可选的 callback 参数是动画完成后所执行的函数名称。
下面的例子演示 animate() 方法的简单应用。它把 <div> 元素往右边移动了 600像素
<script>$(function(){$("button").click(function(){$("div").animate({left:'600px'});})})</script>

-aminate()操作多个属性
<script> $(document).ready(function(){  $("button").click(function(){    $("div").animate({      left:'250px',      opacity:'0.5',      height:'150px',      width:'150px'    });  });});</script> </head><body><button>开始动画</button><p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。 如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p><div style="background:#98bf21;height:100px;width:100px;position:absolute;"></div>

- 使用相对值
<script> $(document).ready(function(){  $("button").click(function(){    $("div").animate({      left:'250px',      height:'+=150px',      width:'+=150px'    });  });});</script> 

-使用预定义的值
您甚至可以把属性的动画值设置为 "show"、"hide" 或 "toggle":
<script> $(document).ready(function(){  $("button").click(function(){    $("div").animate({      height:'toggle'    });  });});</script> 

-使用队列功能
<script> $(document).ready(function(){  $("button").click(function(){    var div=$("div");    div.animate({height:'300px',opacity:'0.4'},"slow");    div.animate({width:'300px',opacity:'0.8'},"slow");    div.animate({height:'100px',opacity:'0.4'},"slow");    div.animate({width:'100px',opacity:'0.8'},"slow");  });});</script> 

-停止动画jQuery stop() 方法
jQuery stop() 方法用于停止动画或效果,在它们完成之前。
stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画。

6.5.jQuery Callback 方法

Callback 函数在当前动画 100% 完成之后执行。
$("button").click(function(){  $("p").hide("slow",function(){    alert("段落现在被隐藏了");  });});

六.jQuery 方法链接

直到现在,我们都是一次写一条 jQuery 语句(一条接着另一条)。
不过,有一种名为链接(chaining)的技术,允许我们在相同的元素上运行多条 jQuery 命令,一条接着另一条。
提示: 这样的话,浏览器就不必多次查找相同的元素。
<script>$(document).ready(function()  {  $("button").click(function(){    $("#p1").css("color","red")      .slideUp(2000)      .slideDown(2000);  });});</script>


七.jQuery HTML


7.1.jquery 捕获
--获得内容 - text()、html() 以及 val()
三个简单实用的用于 DOM 操作的 jQuery 方法:
text() - 设置或返回所选元素的文本内容
html() - 设置或返回所选元素的内容(包括 HTML 标记)
val() - 设置或返回表单字段的值
<script>$(function(){$("#but1").click(function(){alert($('#demo').text());})$("#but2").click(function(){alert($('#demo').html());})alert($('input').val())})</script></head><body><p id="demo">大家<b>好</b></p><button id="but1">获取文本</button><button id="but2">获取html</button><input type="text" id="input" value="你好"/>

--获取属性 - attr()
$("button").click(function(){  alert($("#runoob").attr("href"));});

7.2.jquery设置

设置内容 - text()、html() 以及 val()
我们将使用前一章中的三个相同的方法来设置内容:
text() - 设置或返回所选元素的文本内容
html() - 设置或返回所选元素的内容(包括 HTML 标记)
val() - 设置或返回表单字段的值

第一种.括号里写你想要的值
<script>$(document).ready(function(){  $("#btn1").click(function(){    $("#test1").text("Hello world!");  });  $("#btn2").click(function(){    $("#test2").html("<b>Hello world!</b>");  });  $("#btn3").click(function(){    $("#test3").val("RUNOOB");  });});</script>

第二种.括号里写回调函数
$("#btn1").click(function(){    $("#test1").text(function(i,origText){        return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";     });}); $("#btn2").click(function(){    $("#test2").html(function(i,origText){        return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")";     });});

设置属性
<script>$(document).ready(function(){  $("button").click(function(){    $("#runoob").attr({      "href" : "http://www.runoob.com/jquery",      "title" : "jQuery 教程"    });// 通过修改的 title 值来修改链接名称title =  $("#runoob").attr('title');$("#runoob").html(title);  });});</script></head><body><p><a href="http://www.runoob.com" id="runoob">菜鸟教程</a></p><button>修改 href 和 title</button><p>点击按钮修改后,可以查看 href 和 title 是否变化。</p></body>


attr() 的回调函数
jQuery 方法 attr(),也提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
下面的例子演示带有回调函数的 attr() 方法:
$("button").click(function(){  $("#runoob").attr("href", function(i,origValue){    return origValue + "/jquery";   });});

7.3.jquery添加元素
添加新的 HTML 内容
我们将学习用于添加新内容的四个 jQuery 方法:
  • append() - 在被选元素的结尾插入内容
$("p").append("追加文本");
  • prepend() - 在被选元素的开头插入内容
$("p").prepend("在开头追加文本");
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容
$("img").after("在后面添加文本"); $("img").before("在前面添加文本");
区别:
append/prepend 是在选择元素内部嵌入。
after/before 是在元素外面追加。

7.4.jquery删除元素
如需删除元素和内容,一般可使用以下两个 jQuery 方法:
remove() - 删除被选元素(及其子元素)
$("#div1").remove();
jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。
$("p").remove(".italic");//删除所有class为italic的p元素
empty() - 从被选元素中删除子元素
$("#div1").empty();

7.5.jquery  css

jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些:
css样式:
.important{        font-weight:bold;        font-size:xx-large;} .blue{        color:blue;}
  • addClass() - 向被选元素添加一个或多个类
$("button").click(function(){  $("h1,h2,p").addClass("blue");  $("div").addClass("important");});
$("button").click(function(){  $("body div:first").addClass("important blue");});
  • removeClass() - 从被选元素删除一个或多个类
<script>$(document).ready(function(){  $("button").click(function(){    $("h1,h2,p").removeClass("blue");  });});</script>
  • toggleClass() - 对被选元素进行添加/删除类的切换操作
<script>$(document).ready(function(){  $("button").click(function(){    $("h1,h2,p").toggleClass("blue");  });});</script>
  • css() - 设置或返回样式属性
返回 CSS 属性
如需返回指定的 CSS 属性的值,请使用如下语法:
css("propertyname");
$("p").css("background-color");//返回css背景颜色属性
$("p").css({"background-color":"yellow","font-size":"200%"});//设置css背景颜色为黄色,字体大小为200%

7.6.jquery尺寸

jQuery 尺寸方法 jQuery 提供多个处理尺寸的重要方法: 
width()  height()    不包括内边距与边框与外边距
<script>$(document).ready(function(){  $("button").click(function(){    var txt="";    txt+="div 的宽度是: " + $("#div1").width() + "</br>";    txt+="div 的高度是: " + $("#div1").height();
    txt+="div 宽度,包含内边距: " + $("#div1").innerWidth() + "</br>";    txt+="div 高度,包含内边距: " + $("#div1").innerHeight();
   txt+="div 宽度,包含内边距和边框: " + $("#div1").outerWidth() + "</br>";   txt+="div 高度,包含内边距和边框: " + $("#div1").outerHeight();    $("#div1").html(txt);  });});</script>

innerWidth()  innerHeight()  包括内边距

outerWidth()  outerHeight()  包括内边距与边框

八.jquery 遍历

Query 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。
祖先
8.1  jQuery parent() 方法 
parent() 方法返回被选元素的直接父元素。 
该方法只会向上一级对 DOM 树进行遍历。
$(document).ready(function(){  $("span").parent();//返回的是span元素的直接父元素});

8.2  jQuery parents() 方法
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。
$(document).ready(function(){  $("span").parents();//返回的是span元素的所有父元素});
$(document).ready(function(){  $("span").parents("ul");//返回的是span元素的所有父元素并且它是ul元素});

8.3 jQuery parentsUntil() 方法
parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
$(document).ready(function(){  $("span").parentsUntil("div");//span元素与div元素之间的元素,不包括span与div});

后代
8.4 jQuery children() 方法
children() 方法返回被选元素的所有直接子元素。
该方法只会向下一级对 DOM 树进行遍历。
$(document).ready(function(){  $("div").children();//直接子元素});

8.5 jQuery find() 方法
find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
下面的例子返回属于 <div> 后代的所有 <span> 元素:
$(document).ready(function(){  $("div").find("span");});

同胞

在 DOM 树中水平遍历
有许多有用的方法让我们在 DOM 树进行水平遍历:
  • siblings()
jQuery siblings() 方法
siblings() 方法返回被选元素的所有同胞元素。
$(document).ready(function(){  $("h2").siblings();//括号里可以写值,});
  • next()
jQuery next() 方法
next() 方法返回被选元素的下一个同胞元素。
该方法只返回一个元素。
$(document).ready(function(){  $("h2").next();});
  • nextAll()
jQuery nextAll() 方法
nextAll() 方法返回被选元素的所有跟随的同胞元素。
下面的例子返回 <h2> 的所有跟随的同胞元素:
$(document).ready(function(){  $("h2").nextAll();});
  • nextUntil()
jQuery nextUntil() 方法
nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。
下面的例子返回介于 <h2> 与 <h6> 元素之间的所有同胞元素:
$(document).ready(function(){  $("h2").nextUntil("h6");});
  • prev()
  • prevAll()
  • prevUntil()
这三个跟上面三个一样的用法,只是一个之后一个之前.

过滤

1.jQuery first() 方法
first() 方法返回被选元素的首个元素。


2.jQuery last() 方法
last() 方法返回被选元素的最后一个元素

3.Query eq() 方法
eq() 方法返回被选元素中带有指定索引号的元素。
索引号从 0 开始,因此首个元素的索引号是 0 而不是 1。

4.jQuery filter() 方法
filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。
$(document).ready(function(){  $("p").filter(".url");//返回带有类名url的所有p元素});

5.jQuery not() 方法
not() 方法返回不匹配标准的所有元素。
提示:not() 方法与 filter() 相反。

九.jquery  ajax

AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。
使用 AJAX 的应用程序案例:谷歌地图、腾讯微博、优酷视频、人人
$("button").click(function(){   $("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){     if(statusTxt=="success")       alert("外部内容加载成功!");     if(statusTxt=="error")       alert("Error: "+xhr.status+": "+xhr.statusText);   }); });

网等等。

9.1 jQuery load() 方法
jQuery load() 方法是简单但强大的 AJAX 方法。
load() 方法从服务器加载数据,并把返回的数据放入被选元素中。
语法:
$(selector).load(URL,data,callback);
  1. 必需的 URL 参数规定您希望加载的 URL。
  2. 可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
  3. 可选的 callback 参数是 load() 方法完成后所执行的函数名称。
 可选的 callback 参数规定当 load() 方法完成后所要允许的回调函数。回调函数可以设置不同的参数:
  • responseTxt - 包含调用成功时的结果内容
  • statusTXT - 包含调用的状态
  • xhr - 包含 XMLHttpRequest 对象
<script>$(document).ready(function(){  $("button").click(function(){    $("#div1").load("/try/ajax/demo_test.txt",function(responseTxt,statusTxt,xhr){      if(statusTxt=="success")        alert("外部内容加载成功!");      if(statusTxt=="error")        alert("Error: "+xhr.status+": "+xhr.statusText);    });  });});</script>

9.2 jQuery - AJAX get() 和 post() 方法
jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。 
Query $.get() 方法$.get() 方法通过 HTTP GET 请求从服务器上请求数据。语法:$.get(URL,callback);必需的 URL 参数规定您希望请求的 URL。可选的 callback 参数是请求成功后所执行的函数名。下面的例子使用 $.get() 方法从服务器上的一个文件中取回数据:

$("button").click(function(){  $.get("demo_test.php",function(data,status){    alert("数据: " + data + "\n状态: " + status);  });});

jQuery $.post() 方法 $.post() 方法通过 HTTP POST 请求从服务器上请求数据。 语法: $.post(URL,data,callback); 必需的 URL 参数规定您希望请求的 URL。 可选的 data 参数规定连同请求发送的数据。 可选的 callback 参数是请求成功后所执行的函数名。 下面的例子使用 $.post() 连同请求一起发送数据:

$("button").click(function(){    $.post("/try/ajax/demo_test_post.php",    {        name:"菜鸟教程",        url:"http://www.runoob.com"    },        function(data,status){        alert("数据: \n" + data + "\n状态: " + status);    });});




原创粉丝点击