在学习jquery以前,就有看过一些相关的视频,才知道它是能够写不多的代码就能够完成不少事的。记得第一写轮播图的时候,首先就百度了篇轮播图的实现,当时还不知道本身百度的其实不是原生的JS代码,而是用jquery完成的,当时也是初识JS,而后就一脸懵逼的看了视频,结果好像还看懂了,因而跟着他的代码像作着世界上最伟大的事同样的敲着代码,编译的时候却没反应,通过一些了解后才发现这是用传说中的jquery完成的。尽管第一次接触jquery不是为接触而接触的,可是也意识到了他强大的功能。javascript
真正接触jquery:css
jquery是一种轻量级的javascript库不只兼容了css3,还兼容各类浏览器。当咱们再作一个项目时,须要作一些底层的东西,就是说兼容,像一些方法,网页事件,动画,DOM操做、Ajax封装等,他能够在最底层为事件作兼容,除此外,jquery还具备强大的选择器。html
讲真,jquery强大的选择器真的把我给吓到了,虽然说“兵不在多而在于精“,可是jquery”多多益善“的各类选择器给咱们操做页面元素带来了大大的方便,这里我就先讲讲我对【id选择器、类选择器、元素选择器、全选择器、层级选择器、基本筛选选择器、内容筛选选择器、可见性筛选选择器】的理解即总结。前端
页面的任何操做都须要节点的支撑,开发者如何快速高效的找到指定的节点也是前端开发中的一个重点。jQuery提供了一系列的选择器帮助开发者达到这一目的,让开发者能够更少的处理复杂选择过程与性能优化,更多专一业务逻辑的编写。java
【id选择器】jquery
一个用来查找的ID的选择器,即元素的id属性。css3
$("#id");
id选择器也是基本的选择器,jQuery内部使用JavaScript函数document.getElementById()来处理ID的获取。原生语法的支持老是很是高效的,因此在操做DOM的获取上,若是能采用id的话尽然考虑用这个选择器浏览器
注意:id是惟一的,每一个id值在一个页面中只能使用一次。若是多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。但这种行为不该该发生;有超过一个元素的页面使用相同的id是无效的。性能优化
【类选择器】less
经过class样式类名来获取节点。
$(".class");
<body> <div class="aaron"> <p>class="aaron"</p> <p>选中</p> </div> <div class="aaron"> <p>class="aaron"</p> <p>选中</p> </div> <div class="imooc"> <p>class="imooc"</p> <p>jQuery选中</p> </div> <script type="text/javascript"> //经过原生方法处理 //样式是能够多选的,因此获得的是一个合集 //须要经过循环给合集中每个元素修改样式 var divs = document.getElementsByClassName('aaron'); for (var i = 0; i < divs.length; i++) { divs[i].style.border = "3px solid blue"; } </script> <script type="text/javascript"> //经过jQuery直接传入class //class选择器能够选择多个元素 $(".class").css("border", "3px groove red");//groove,展示出来的边框内测是凹进去的,有点像画框边缘。 </script> </body>
jQuery除了选择上的简单,并且没有再次使用循环处理,不难想到$(".imooc").css()方法内部确定是带了一个隐式的循环处理,因此使用jQuery选择节点,不只仅只是选择上的简单,还增长不少关联的便利操做。
【元素选择器】
根据给定(html)标记名称选择全部的元素,搜索指定元素标签名的全部节点,这个是一个合集的操做。一样的也有原生方法getElementsByTagName()函数支持。如:$("p");($("element");)
【全选择器】
通配符*意味着给全部的元素设置默认的边距。jQuery中咱们也能够经过传递*选择器来选中文档页面中的元素,抛开jQuery,若是要获取文档中全部的元素,经过document.getElementsByTagName()中传递"*"一样能够获取到。可是有时候咱们选哟考虑兼容性的我问题。他的描述:$("*");
【层级选择器】
文档中的全部的节点之间都是有这样或者那样的关系。咱们能够把节点之间的关系能够用传统的家族关系来描述,能够把文档树看成一个家谱,那么节点与节点直接就会存在父子,兄弟,祖孙的关系了。
选择器中的层级选择器就是用来处理这种关系。(子元素 后代元素 兄弟元素 相邻元素)层级选择器有如下几种表示:
(匹配过滤选择器的用法:
<script type="text/javascript"> //:not 选择全部元素去除不匹配给定的选择器的元素 //选中全部紧接着没有checked属性的input元素后的p元素,赋予颜色 $("input:not(:checked)+p").css("background-color", "#CD00CD"); </script>
)
选择器之间的类似与不一样:
一、层级选择器都有一个参考节点
二、后代选择器包含子选择器的选择的内容
三、通常兄弟选择器包含相邻兄弟选择的内容
四、相邻兄弟选择器和通常兄弟选择器所选择到的元素,必须在同一个父元素下
【基本筛选选择器】
为了方便能直接找到所需的DOM节点元素,jQuery提供了一系列的筛选选择器用来更快捷的找到所需的DOM元素。
筛选选择器的用法与CSS中的伪元素类似,选择器用冒号“:”开头,经过一个列表,看看基本筛选器的描述:
【内容筛选选择器】
基本筛选选择器针对的都是元素DOM节点,若是咱们要经过内容来过滤,jQuery也提供了一组内容筛选选择器。几种方式描述:
【可见性筛选选择器】
元素有显示状态与隐藏状态,jQuery根据元素的状态扩展了可见性筛选选择器:visible与:hidden。描述:
若是元素中占据文档中必定的空间,元素被认为是可见的。
咱们有几种方式能够隐藏一个元素:
1宽度和高度都显式设置为0。二、CSS visibility的值是hidden,display的值是none。3type="hidden"的表单元素。
【总结】
这里这是jquery的部分选择器,可是看起来都不少了,对于记忆性的东西原本就很枯燥,除了机械记忆外,还应该在不断地练习中掌握它的原理及用法,还有遇到一些简称的代码,最好去查一下他的全称,记忆会更牢固。例如:基本筛选选择器中,eq全称是equal(意思是“等于”);gt全称是greater than(意思是大于);lt全称是less than(意思是小于)。
手已经申请休假了~~~~~~