一:jQuery简介
jQuery是一个JavaScript库,$就是jQuery的一个简写形式。
eg:$(“#foo”)和jQuery(“#foo”)是等价的;$.ajax和jQuery.ajax是等价的。
二:DOM对象与jQuery对象
DOM对象与jQuery对象: 通过JavaScript中的getElementsByName、getElementById等方法获取元素节点,得到的就是DOM对象。
jQuery对象就是通过jQuery包装DOM对象后产生的对象。
DOM对象与jQuery对象的相互转换:
一个约定:如果获取的对象是jQuery对象,那么在变量前面加上$,例如: var $variable = jQuery对象。 如果获取的是DOM对象,则定义如下: var variable=DOM对象1.DOM对象转换成jQuery对象
对于一个DOM对象,只要用$( )把DOM对象包装起来,就可以获得一个jQuery对象了。即:$(DOM对象)。
2. jQuery对象转换成DOM对象 方式一: 由于jQuery对象是一个类似数组的对象,可以通 过[index]的方法得到相应的DOM对象。eg: var $a = $(“#a”); var a=$a[0]; 方式二: 通过jQuery对象本身提供的get(index)方法。eg: var $a=$(“#a”);
var a=$a.get(0);
三:$(document).ready(function(){})
在jQuery中,通过使用: $(document).ready(function(){ // DOM结构绘制完毕后执行此处代码 }); 可以编写DOM结构绘制完毕后执行的代码 该结构也可简写成: $(function(){ // DOM结构绘制完毕后执行此处代码
});
eg:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>我的第一个jQuery网页</title> <!--引入jQuery库--> <script type="text/javascript" src="jquery-3.1.1.js"></script> <script type="text/javascript"> $(function(){ alert("hello,欢迎学习jQuery!"); }); </script> </head> <body> </body> </html>运行结果图:
四:jQuery选择器
(1)id选择器 $(#ID名称) eg: $( "#myDiv").css( "border", "3px solid red" );
此代码对应JavaScript的: document.getElementById(" myDiv ").style.border='3px solid red';
(2)通用选择器 $("*" )
(3)类选择器 $(".class")
(4).复选框选择器 $(":checkbox" )
(5)后代选择器 $( "ancestor descendant" )
(6)子选择器 $("parent > child" )
(7)多元素选择器 $( "selector1, selector2, selectorN" )
eg:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery选择器</title> <style type="text/css"> .divclass{ width:200px; height:200px; background-color: yellow; } </style> <script type="text/javascript" src="jquery-3.1.1.js"></script> <script type="text/javascript"> $(function(){ /** $("#btn").click(function(){ $("#mydiv").css("background-color","red"); }); **/ $("*").css("background-color","#FAEBD7"); $("#btn").bind("click",function(){ $("#mydiv").css("background-color","#aabbcc"); }); $("#btn2").click(function(){ $(".divclass").css("background-color","red"); }); }); </script> </head> <body> <div id="mydiv" class="divclass"></div> <input type="button" value="ID点击变色" id="btn"/> <br/><br/> <input type="button" value="class点击变色" id="btn2"> <div class="divclass"></div> </body> </html>运行结果图:
五:事件冒泡
当在有包含关系的DOM层级上绑定事件时,事件会按照DOM层级结构顺序从内到外依次触发,这就是“事件冒泡”。停止事件冒泡的方法: 在事件处理函数中加上event事件对象,调用event事件对象的stopPropagation()方法。补充:阻止默认行为也是用event事件对象: event.preventDefault();
eg1:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>事件冒泡</title> <style type="text/css"> #parentDiv{ width:400px; height:400px; background-color:#7FFF00; } #childDiv{ width:200px; height:200px; background-color:yellow; margin:50px auto; } </style> <script type="text/javascript" src="jquery-3.1.1.js"></script> <script type="text/javascript"> $(function(){ $("#parentDiv").bind("click",function(){ alert("parentDiv被点击了"); }); $("#childDiv").bind("click",function(event){ alert("childDiv被点击了"); event.stopPropagation(); // 停止事件冒泡 }); $("body").bind("click",function(){ alert("body被点击了"); }); }); </script> </head> <body> <div id="parentDiv"> 这是parentDiv里的内容 <div id="childDiv"> 这是childDiv里的内容 </div> 这是parentDiv里的内容 </div> </body> </html>运行结果图:
eg2:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>阻止默认行为</title> <script type="text/javascript" src="jquery-3.1.1.js"></script> <script type="text/javascript"> $(function(){ $("#registerForm").bind("submit",function(event){ var username=$("#uname").val(); var password=$("#upwd").val(); if(username==""){ alert("用户名不能为空!"); event.preventDefault(); // 阻止提交表单的默认行为 } if(password.length<6){ alert("密码不能小于6位!"); event.preventDefault(); // 阻止提交表单的默认行为 } }); }); </script> </head> <body> <form action="serverURL" method="post" id="registerForm"> 注册用户名:<input type="text" name="uname" placeholder="请输入用户名" id="uname"/> <br/> <br/> 注册密码:<input type="password" name="pwd" placeholder="请输入密码" id="upwd"> <br/> <br/> <input type="submit" value="注册"/> <input type="reset" value="重置"/> </form> </body> </html>运行结果图:
