今天用jquery写一个js的效果,总结了几个方法。
获取jquery对象的css样式属性:css()方法,还可以更改其css样式:$(this).css('display') ;$(this).css('display','none');
获取兄弟节点的方法:$(this).siblings()方法
jquery对象增加删除clss属性可以用来改变样式:$(this).addClass('className') ; $(this).removeClass('className');
某些jquery对象的悬停效果 $(this).hover(function(){},function(){});前面函数是鼠标进入区域时触发的操作,后面函数是鼠标离开区域时触发的操作
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Basic Form - jQuery EasyUI Demo</title> 6 <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css"> 7 <link rel="stylesheet" type="text/css" href="../../themes/icon.css"> 8 <link rel="stylesheet" type="text/css" href="../demo.css"> 9 <script type="text/javascript" src="../../jquery.min.js"></script> 10 <script type="text/javascript" src="../../jquery.easyui.min.js"></script> 11 12 <script type="text/javascript"> 13 $(function(){ 14 15 16 17 $('.type_selected').text("公司"); 18 19 //显示li的悬停事件 20 $('.type_selected').hover(function(){ 21 $(this).siblings().css('display','list-item'); 22 if($(this).text()=="公司"){ 23 $(this).siblings().text("职位"); 24 }else{ 25 $(this).siblings().text("公司"); 26 } 27 28 29 //兄弟节点的悬停 30 $(this).siblings().hover(function(){ 31 $(this).css('display','list-item'); 32 },function(){ 33 $(this).css('display','none'); 34 }) 35 36 37 38 },function(){ 39 $(this).siblings().css('display','none'); 40 }); 41 42 //兄弟节点的点击事件 43 $(".type_selected").siblings().click(function(){ 44 if($(".type_selected").text()=="城市"){ 45 $(".type_selected").text("职位"); 46 }else{ 47 $(".type_selected").text("城市"); 48 } 49 $(".type_selected").siblings().css("display","none"); 50 }); 51 }) 52 53 </script> 54 55 <style type="text/css"> 56 57 58 #searchType{cursor:pointer;position:absolute;list-style:none;padding:0;margin:0;width:98px;background:#fff;left:-2px;top:0;} 59 60 61 #searchType li{font-size:16px;height:23px;line-height:24px;padding:7px 22px;border:2px solid #91cebe;display:none;} 62 63 64 #searchType li.type_selected{height:23px;border-left:2px solid #019875;border-right:2px solid #019875;border-top:0;border-bottom:0;display:block;} 65 </style> 66 67 68 </head> 69 <body> 70 71 72 73 74 75 <ul id="searchType">
<li class="type_selected" data-searchtype="1" style="display: list-item;"></li>
<li class="" data-searchtype="4" style="display: none;"></li>
</ul> </body> 82 </html>
就是从这个项目中积累了一点小知识,留住以便后用。还用这个小js效果也让我编写代码的思想有了一点改变,开始想着当点击下面一个li时,如何让上面的li隐藏,下面的li显示,然而我们换个角度来想这个问题,我们只需要把上面的li和下面li的文本互换一下就好了。无需做如上那么复杂的操作。
今天系统的总结一下jQuery的选择器
1、id选择器:选取元素的id$("#id")
2、元素选择器:选取节点名$(p),$(div)
3、子选择器:">" 选取某个节点下的子元素。 $('div>p')
4、群组选择器:" ,"主要用于获取多个DOM元素; 各个选择的对象以逗号隔开获取多个DOM元素,单个DOM元素的选择方式不做要求 $('#id, .className, div')
5、后代选择器:后代DOM元素与父类元素以空格隔开,选取后代元素 $('div ul li a')
6、通配符选择器:$(*) 所有的元素,在全局中使用消耗过多资源,没多大的用途;当在局部时适当时有很大的作用。$('ul li *') ul li 下的所有元素。
7、元素类选择器:当用元素名选择一个元素时,无法精确的选取某个DOM对象,此时元素类选择器就可以做到相对于精确的选择。$('div.className') 在元素名后面跟上". className",注意,之间不能有空格否则就成了后代选择器。
8、元素id选择器:和元素类选择器比较类似。$('div#idName')。也是注意在元素名与#idName之前不能有空格,否则也成了后代选择器
9、多类选择器:每个DOM元素可以有多个类,选择某个有多个类的元素可以使用多类选择器 $('.className1.className2') 注意多个类名之间不能有空格。否则就成了后代选择器
高级选择器:
1、后代选择器:之前介绍过,后代选择器就是中间由空格隔开,jQuery为后代选择器提供了一个方法find(),$('div').fin('p')查找div子元素为p元素的DOM对象
2、子选择器:子选择儿子,不选择孙子节点 $('div>p') jQuery提供了一个方法 $('div').children()
3、next选择器:$('div + p '),选取div后面第一个匹配的为P的元素 jQuery有对应的方法 next():选择后面匹配的第一个元素,如果下一个元素没有匹配则不作任何改变、必须是相邻的第一个;如果不进行第一个匹配,而是匹配后面所有的元素则是nextAll选择器 $('div~p') $('div').nextAll('p');
nextUntil选择器:选择后面的所有元素知道遇到某个元素停止选择 $('div').nextUntil('p');
4、属性选择器:[name=''],[type=''] 通过判断标签的属性,进行精确的选择DOM对象 $(input[type='text'])
5、基本过滤器:
:first 选取第一个元素 ,jQuery对应的方法有first()
:last 选取最后一个元素,jQuery对应的方法有last()
:not(selector) class不是selector的元素,jQuery对应的方法是not()
:odd/:even 奇数偶数过滤
eq(index) 等于index的元素,从0开始奇数 index为负数时,从后往前数从-1开始计数,jQuery对应的方法eq()
:gt(index) 大于index的元素,正数从0开始计数,为负数时从=1开始计数
:animated 正在执行动画的元素
:focus 选择当前被焦点的元素
:lt(index)小于index的元素
6、内容过滤器
:contains(text):选取含有text文本的元素
:empty():选取不含子元素的jQuery元素
:parent():选取含有子元素或文本的元素
7、可见性过滤器
:hidden 选取所有不可见的jQuery元素
:visible 选取所有课件的jQuery元素
8、子元素过滤器
:first-child :获取每个父元素的第一个子元素
:last-child:获取每个父元素最后一个子元素
:only-child:获取只含有一个子元素的元素
:nth-child(odd/even/eq(index)) 获取每个自定义的子元素。这里index从1开始计数
部分jQuery提供的选取元素的方法
parent:获取父元素对象
parents:获取所有的祖先节点
parentsUntil(x):获取所有的祖先节点,知道x元素位置位置
is()
child()获取子元素,不包括文本子元素;contentss():获取子元素,包括元素的文本子元素
slice(satre,[end]):选取元素的子集,从state开始到end结束(不包括end),end可以默认不谢那么一直选到结尾