jQuery-学习笔记(1)(北风网-娄景亮)
jQuery:
(jQuery 版本分:V1.0 、V2.0(不再支持IE6/7/8))
1、函数自执行:
<script type="text/javascript"> //定义函数 function selfRun() { console.info("hello"); } //调用或执行 selfRun(); //函数自执行 (function selfRun() { console.info("hello"); })(); //函数自执行,带参数 (function selfRun(name) { console.info("hello" + name); })("world!"); </script>
2、可以写$来使用jQuery的原因:
window.jQuery = window.$ = jQuery;
jQuery自执行函数初始化时,已经把jQuery赋值给了window.jQuery 和window.$ 变量;
3、jQuery 和 javascript 开始执行函数的区别:
//当dom元素加载完毕之后开始执行函数
$(document).ready(function () {
$("#content").val("hello jquery");
});
//当dom元素和资源文件加载完毕之后才开始执行函数
window.onload = function () {};
一、选择器:
1、基本选择器:
1.1 ID选择器:$("#id") 根据元素id查询,
相当于: document.getElementById("id");
1.2 元素选择器: $("div") 根据元素名查询,
相当于:document.getElementByTagName("div");
1.3 类选择器:$(".myClass") 根据class名属性查询,返回所有 class = "myClass" 的元素;
1.4 返回所有元素:$(" * "),多用于结合上下文搜索;
1.5 多条件选择器:$(" div , span ,p.myClass") , 返回所有查到的元素;
2、层次选择器:
2.1 后代选择器:
$("form div") :在给定的祖先元素下匹配所有后代元素;
2.2 parent > child 子代选择器 :只设置它儿子的,不设置孙子的,
$("form > div ") : 在给定的父元素下匹配所有子元素
2.3 prev + next :
$("lable + input") : 匹配所有紧接在prev后的next元素(紧相邻的且只一个);
2.4 prev ~siblins :
$("form~ div ") : 匹配 prev 元素之后的所有siblings (兄弟级)元素(在匹配之后的元素,不包括该元素在内)
3、过滤器:
3.1 :first 选取第一个元素。$("div:first")选取第一个<div> $(".warn:first");
3.2 :last 选取最后一个元素。$("div : last")选取最后一个<div>;
3.3 :not(选择器) 选取不满足“选择器”条件的元素,
$("input : not(.myClass)")选取样式名不是myClass的<input>;
3.4 :even 、 :odd, 选取索引是偶数、奇数的元素 : $("input : even ") 选取索引是奇数的<input>;
3.5 :eq(索引序号)、 :gt(索引序号)、 :lt(索引序号)选取索引等于、大于、小于索引序号的元素,比如$("input : lt(5)") 选取索引小于5的<input> ;
$("tr:gt(1):lt(5)")组合选择器是按照表达式从前向后进行数据过滤;
3.6 slice(start,end) 获取下标范围内元素;
二、jQuery语法:
1、ready方法:
<script type = "text/javascript"> //完整写法:为 document 对象 添加一个 ready 事件方法 //在dom树加载完毕后执行 $(document).ready( function(){ alert("加载完毕!"); }); $( function(){ alert("加载完毕!"); }); //和window.onload区别在于,window.onload要等页面每个资源加载完毕后才执行; </script>
2、基于dom操作:
<script style="text/javascript"> $( function () { //1.1、使用html()方法读取或者设置元素的innerHTML; //设置innerHTML $("#div1").html("<p>hello jquery</p>"); //获取innerHTML var dhStr = $("#div1").html(); console.info(dhStr); //1.2、使用text()方法读取或者设置元素的innerText; //设置innerText $("#div1").text("hello jquery"); //获取innerText var dtStr = $("#div1").text(); console.info(dtStr); //1.3使用attr()方法读取或者设置元素的属性,对于jQuery没有封装的属性(所有浏览器没有差异的属性)用attr进行操作; var imgSrc = $("#img1").attr("src"); //获取图片的src属性值; $("#linkTo").attr("href", "http://www.baidu.com"); //设置 超链接的 href 属性值; console.info(imgSrc); //1.4 使用removeAttr("href")删除属性; $("#linkTo").removeAttr("href"); //1.5 样式操作:操作dom元素的style属性; $("#div1").css("color", "red"); //设置div1的style属性的背景颜色项; var divBg = $("#div1").css("color"); //获取div1的style属性的背景颜色项; console.info(divBg); }); </script>
2.1 dom操作栗子:
a、链式编程:(因为很多jquery 方法直接返回 当前的 jquery对象,所以可以接着 . 出方法!)
1. 不返回 jquery 对象的方法:val(),html(),text(),attr(),返回文本字符串;
2. 返回新的jquery对象的方法:next() nextAll() parent() childern() prev()....
3.剩下基本都是返回当前jquery对象;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>基于dom操作</title> <style type="text/css"> #divDemo { border: 1px solid #0094ff; } </style> <script src="../js/jquery-1.11.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { //1.根据ID得到一个jQuery对象 var $jqDiv = $("#divDemo"); //2.动态设置div的样式 //$jqDiv.css("border", "1px solid #0094ff") // .css("width","300px") // .css("height","100px"); //3.一次性设置多个样式 //对象的自变量表示法,Json对象 var cssObj = { "border": "1px solid #0094ff", "width": "300px", "height": "100px", "background-color": "red" }; $jqDiv.css(cssObj); //4.设置dom元素的动画 //创建一个按钮 $("<input type='button' value='动画1' />").insertAfter($jqDiv) .click(function () { //$jqDiv.slideUp(3000); //将这个div慢慢的收起来; $jqDiv.fadeOut(3000); //淡入; }); $("<input type='button' value='动画2' />").insertAfter($jqDiv) .click(function () { $jqDiv.fadeIn(3000); //淡出; }); }); </script> </head> <body> <div id="divDemo">hello jquery</div> </body> </html>
3、jQuery对象: