jQuery
一、jQuery
1、定义
- jQuery 是JS的类库
- jQuery是为了让JS的开发更简单
- jQuery的目的: 写得少,干得多
2、jQuery优势
- 兼容性问题 (jquery2.以上的不兼容IE8、 兼容IE8以及以下,jquery1-.)
- 便捷的选择器
- 方便的事件体系
- 方便的dom元素
- 方便的动画体系
- 易用的ajax
- 开源、免费
二、jQuery 基础
1、ready 事件
- 
用法 $(document).ready(function(){ }) //简写 $(function(){ })
- 
与onload的区别 - onload 事件 等到页面的一切加载完毕,才能触发
- ready事件等页面中所有的dom加载完毕,就能触发
 
2、jquery dom 和 原生 dom
- 
通过$() 获取的对象,是jquery dom 
- 
jquery dom 本质上是由 原生dom 组成的集合,通过取下标就可以获取原生dom 
- 
$()方法可以把 原生dom 变为 jquery dom $(document)//把jquery dom 变成原生dom $dom[0].style.border="2px solid orange"; //原生dom转换为jquery dom $(dom).css("background-color","yellow");
3、jquery 中绑定事件
	//jquery给一组元素绑定事件不需要遍历
	$("ul li").click(function(){
		$(this).css("background-color","yellow");
	})
三、jquery 选择器
1、基本选择器

    <h1>选择器</h1>
    <h4>过滤选择器</h4>
    <ul id="firstList">
	    <li>小丽丽</li>
	    <li lang="zh">小丽丽</li>
	    <li>小丽丽
		    <ul>
			    <li>小翠翠</li>
			    <li>小翠翠</li>
			    <li class="item">小翠翠</li>
			    <li>小翠翠</li>
			    <li>小翠翠</li>
		    </ul>
	    </li>
	    <li>小丽丽</li>
	    <li>小丽丽</li>
	    <li>小丽丽</li>
    </ul>
    <ul id="secondList">
	    <li>嘿嘿嘿</li>
	    <li>嘿嘿嘿</li>
	    <li>嘿嘿嘿</li>
	    <li>嘿嘿嘿</li>
	    <li>嘿嘿嘿</li>
    </ul>
- 
ID
- .className
- tagName
- *
- selecter,selecter
2、层级选择器
- selecter seclter
- selecter>selecter
- selecter+selecter
- selecter~selecter
3、过滤选择器
- 
:first $("#firstList li:first").css("border","3px solid red");
- 
:last $("#firstList li:last").css("border","3px solid red");
- 
:eq(index)等于 $("#firstList li:eq(3)").css("border","3px solid red")
- 
:lt(index)小于 $("#firstList li:lt(5)").css("border","3px solid red");
- 
:gt(index)大于 
- 
:odd 奇数 
- 
:even 偶数 $("#secondList li:even").css("background-color","orange")
- 
:not(selecter) 排除(除了它以外的符合范围的) $("#firstList li li:not(.item)").css("background-color","#999")
- 
:lang() $("#firstList>li:lang(zh)").css("border","5px solid green");
- 
:header 所有的标题标签(hn) $(":header").css("color","red");
- 
:root $(":root").css("border","1px solid red");
- 
:focus $("input").focus(function(){ $("input:focus").css("border","3px solid red"); })
- 
:target 
 添加锚点出效果
 $(document).ready(function(){
 $("ul:target").css("border","10px solid green");
 })
 ![]() 
4、内容选择器

    <ul>
	    <li>丽丽</li>
	    <li>丽丽</li>
	    <li>丽丽
		    <ul>
			    <li>翠翠</li>
			    <li>翠翠</li>
			    <li></li>
			    <li class="item">翠翠</li>
			    <li style="visibility:hidden;">翠翠</li>
			    <li>翠翠</li>
		    </ul>
	    </li>
	    <li>丽丽</li>
	    <li></li>
	    <li>丽丽</li>
</ul>
- 
:contains(text) $("li:contains('翠翠')").css("border","1px solid red");
- 
empty 
- 
parent $("li:parent").css("border","5px solid red");
- 
has(selecter) $("li:has(.item)").css("border","5px solid red");

5、可见性选择器
- 
:hidden 
- 
:visible $("li:visible").css("border","1px solid red");
6、属性选择器
- [attrName]
- [attrName=value]
- [attrName!=value]
- [attrName^=value]
- [attrName$=value]
- [attrName*=value]
7、子元素选择器
- :first-child
- :last-child
- :nth-child()
- :nth-last-child()
- :only-child
- :first-of-type
- :last-of-type
- :nth-of-type()
- :nth-last-of-type()
- :only-of-type
8、表单选择器

- 
:input 所有的表单控件(input\select\textarea) $(":input").css("border","1px solid red");
- 
:text 
- 
:radio 
- 
:checkbox 
- 
:password 
- 
:image 
- 
:submit 
- 
:reset 
- 
:button 
- 
:file 
9、表单对象选择器
- 
:diabled 
- 
:enable $(":enabled").css("border","1px solid red");
- 
:checked 
- 
:selected 
四、筛选


1、过滤
       <ul>
	    <li>丽丽</li>
	    <li>丽丽</li>
	    <li>丽丽
		    <ul>
			    <li>霞霞</li>
			    <li>霞霞</li>
			    <li></li>
			    <li class="crrent item">霞霞item</li>
			    <li style="visibility:hidden;">霞霞</li>
			    <li>霞霞</li>
		    </ul>
	    </li>
	    <li>丽丽</li>
	    <li>丽丽</li>
	    <li></li>
	    <li>丽丽</li>
    </ul>
- 
.eq(index) 
- 
.first() $("li").first().css("border","5px solid red");
- 
.last() 
- 
not(selcter) 
- 
filter(selecter) 
 只是selecter$("li").filter(".item").css("border","5px solid red");

- 
has(selecter) 
 selecter的父元素$("li").has(".item").css("border","5px solid red"); 
 ![]() 
- 
slice(start, end) 
 start<=数<end$("li").slice(2,6).css("border","5px solid red");
- 
is(selecter) true/false 
- 
hasClass(className) /true/false 
- 
map(fn) 
 将一组元素转换成其他数组(不论是否是元素数组)var arr=$("li").map(function(index,item){ return item.innerHTML; })
2、查找
- 
find(selcter) 后代元素 $("#myList").find("li").css("border","1px solid red");
- 
children(selcter) 子元素 $("#myList").children("li").css("border","1px solid red");
- 
parent() 父元素 
- 
parents(selcter) 所有的祖先元素 
- 
parentsUntil(selecter) 所有祖先素直到 $(".item").parentsUntil("html").css("border","5px solid red");
- 
closest(selecter) 从自身和祖先元素中 找到第一个满足条件 $(".item").closest("li").css("border","5px solid red");
- 
next() 下一个 $(".item").next().css("border","5px solid red");
- 
nextAll() 
- 
nextUntil() 
- 
prev() 
- 
prevAll() 
- 
prevUntil() 
- 
siblings() 所有的兄弟元素 $(".item").siblings("p").css("border","5px solid red");
3、串联
- 
add(selcter) 把选中的元素加入到当前集合 
- 
addBack() 把最近的堆栈中元素加入当前集合 
- 
end() 返回最近一次破坏性操作之前的元素 
- 
contents() 所有子节点的集合(不是jquery dom) <script> $(document).ready(function(){ //$("li").add("p").css("background-color","orange"); //$("ul").find("li").addBack().css("border","5px solid red"); $("ul").find("li").end().css("border","5px solid red"); console.log($("ul").contents()); console.log($("ul").contents()[1]); console.log($("ul").contents()[0]); }) </script>
五、属性操作

1、属性操作的方法
- 
prop(attr [,val]) 只能操作内置属性 //获取某个属性的值 console.log($("img").prop('src')); console.log($("img").prop('width')); //修改某个的属性的值 $("img").prop("title","哈哈哈"); $("img").prop("alt","哈哈哈");
- 
attr(attr [,va]) 操作自定义属性 //获取自定义属性的值 console.log($("img").attr("loadpic")); console.log($("img").attr("src"));
- 
remvoeAttr(attr) 移除属性 $("img").removeAttr("dddd");
2、class操作
- 
addClass() 添加一个类 
- 
removeClass() 移除一个类 
- 
toggleClass() 切换 
- 
hasClass() 判断一个类 $("img").click(function(){ /*if($(this).hasClass("current")){ $(this).removeClass("current"); }else{ $(this).addClass("current"); }*/ $(this).toggleClass("current"); })
3、HTML代码/文本/值
- 
html([val]) //获取div内的html内容 console.log($(".content").html());
- 
text([val]) $(".content").text("<h1>锄禾日当午</h1>");
- 
val([val]) 
六、CSS

1、css方法
- 
css() $("#btn").click(function(){ //$(".my-list li").css("border","1px solid red").css("padding","20px"); $(".my-list li").css({"border":"2px solid green","padding":"20px","margin-bottom":"10px" })
2、位置
- 
offset() 
- 
postion() $("#btn1").click(function(){ console.log($(".my-list li").eq(1).offset()); console.log($(".my-list li").eq(1).position()) })
- 
scrollLeft([val]) //获取scrollLeft $("#btn3").click(function(){ console.log($(".box").scrollLeft()); }) //设置scrollLeft $("btn4").click(function(){ $(".box").scrollLeft($(".box").scrollleft()+100) })
- 
scrollTop([val]) 
3、尺寸
- 
width() / height() 
- 
innerWidth() / innerHeight() 
- 
outerWidth() / outerHeight() console.log($(".box").width(),$(".box").height()); console.log($(".box").innerWidth(),$(".box").innerHeight()); console.log($(".box").outerWidth(),$(".box").outerHeight()); //设置尺寸 $("#btn5").click(function(){ //$(".box").width(500); $(".box").outerWidth(500); })
七、文档处理(添加删除元素)


1、内部插入
- 
append()后插 $(function(){ //添加 $("#btn01").click(function(){ //创建一个元素 /*var newImg=$("<img>").prop("src","../images/002.jpg"); $(".box").append(newImg);*/ $(".box").append("<img src='../images/002.jpg'>"); }) })
- 
appendTo() $("#btn02").click(function(){ $("<img src='../images/003.jpg'>").appendTo(".box"); })
- 
prepend()前面插 $("#btn03").click(function(){ $(".box").prepend("<img src='../images/002.jpg'>"); })
- 
prependTo() 
2、外部插入
- 
after() 前插 //外部插入 $("#btn04").click(function(){ $(".box").after("<img src='../images/002.jpg'>"); })
- 
insertAfter() $("#btn05").click(function(){ $("<img src='../images/002.jpg'>").insertAfter(".box"); })
- 
before()后插 
- 
insertBefore() 
3、包裹
- 
wrap()每一个img包裹一个li //包裹 $("#btn07").click(function(){ $(".box img").wrap("<li>"); })
- 
wrapAll()给所有的img包裹一个li 
- 
wrapInner() 
 给所有的img包裹一个li$("#btn09").click(function(){ $(".box").wrapInner("<li>"); })
- 
unwrap()往上删除包裹img的标签 $("#btn10").click(function(){ $(".box img").unwrap(); })
4、替换
- 
replaceWith() 
- 
replaceAll() 
- 
效果没有区别只是写法不同而已 
 //替换
 $("#btn11").click(function(){
 $(".box img.current").replaceWith("![]() "); ");
 })$("#btn12").click(function(){ $("<img src='../images/002.jpg'>").replaceAll(".box img.current"); }) //给每个img绑定事件 $(".box img").click(function(){ $(this).toggleClass("current"); })
5、删除元素
- 
empty() 清空全部 
- 
remove() 删除(自己) 
- 
detach() 删除 //删除 $("#btn13").click(function(){ $(".box").empty(); }) $("#btn14").click(function(){ $("img.current").remove(); })
6、克隆
- clone()
八、事件


1、ready
2、事件绑定方式
- 
事件(fn) 
- 
bind("事件", fn) 指定对象 同时绑定多个事件 $(".box").dblclick(function(){ console.log("啊,我被双击了"); }) //标准绑定方式 $(".box").bind("click",function(){ console.log("啊,我被单击了"); })
- 
on("事件", fn) 
- 
one("事件", fn)只能用一次 $(".box").on("mouseover",function(){ $(this).css("background","red"); }) $(".box").one("mouseout",function(){ $(this).css("background",""); })
3、事件解除绑定
- 
unbind() 
- 
off() $("#btn").click(function(){ //$(".box").unbind("click").unbind("mouseout"); //$(".box").unbind("click"); $(".box").off(); })
4、事件委派
- 
on(事件, 选择器, fn) $(function(){ $(".my-list").on("mouseover","li",function(){ $(this).css("background","orange"); }).on("mouseout","li",function(){ $(this).css("background",""); }) })
- 
delegate(选择器, 事件, fn) $(".my-list").delegate("li","click",function(){ $(this).css("border-color","red"); })
- 
undelegate(选择器) 
5、自动触发事件
- 
trigger() 
- 
triggerHandler() //$(".my-list li").trigger("mouseover"); //$(".my-list li").triggerHandler("dblclick"); $(".my-list li").trigger("dblclick");
6、jQuery 事件
- 
hover 
- 
mouseenter 
- 
mouseleave 
- 
focusin 
- 
focusout <script> $(function(){ $(".my-list li").hover(function(){ $(this).toggleClass("current"); }) }) </script>
九、效果

1、基本 (width/height/opacity)
- 
show() 
- 
hide() 
- 
toggle() $(document).ready(function(){ $("#btn1").click(function(){ //$("#box").hide(); //$("#box").hide("fast"); //$("#box").hide("normal"); //$("#box").hide("slow"); // $("#box").hide(3000); //$("#box").hide(3000,"linear"); //$("#box").hide(3000,"linear",function(){}); $("#box").hide(3000,function(){ alert("啊,我隐藏了") }) }) })
2、滑动滑出 (height)
- slideUp() 隐藏
- slideDown() 显示
- slideToggle()
3、淡入淡出
- 
fadeOut() 隐藏 
- 
fadeIn() 显示 
- 
fadeToggle() 
- 
fadeTo() $("#btn10").click(function(){ $("#box").fadeTo(3000,0.5); })
4、自定义动画
- 
animate(params, speed, easing, fn) $("#btn03").click(function(){ $(".box").animate({ "width":"toggle","font-size":"toggle" },3000) })
5、动画操作
- 
stop() 
- 
finish() 
- 
delay() 延迟 $("#btn1").click(function(){ $("#box").slideUp(3000).delay(3000).show(3000); }) $("#btn2").click(function(){ $("#box").stop(); }) $("#btn3").click(function(){ $("#box").finish(); })
十、工具
1、浏览器
- $.support
2、对象和属性操作
- 
$.each() $.each(list,function(index,item){ console.log(index+":"+item);
- 
$.extend() 
十一、核心

1、jQueryDOM 方法
- each()
- size()
- length
区别
- empty()
- 该方法不仅删除它的子节点,同时也删除该节点的文本域(根据DOM规范,节点的文本域也被认为是子节点)。
- remove( [selector] )
- 和empty方法类似,remove方法也是从DOM里删除元素。当你想要删除节点本身和节点里的所有东西的时候,可以使用remove方法。除了节点本身以外,节点绑定的事件 和该节点相关的JQuery数据,也会被同时清除。当需要清除节点本身,但是不需要清除绑定的事件和数据的时候,可以使用detach方法。
- detach( [selector] )
- detach方法和remove方法很相似,但是它会保留所有JQuery相关的数据和绑定的事件。当你删除之后,想要在后来的某个时候重新加入时,这个方法将会很有用。
 
                     
                    
                 
                    
                


 ");
"); 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号