初识JQuery(1)-选择器
初识jquery
在学习jquery之前,就有看过一些相关的视频,才知道它是可以写很少的代码就可以完成很多事的。记得第一写轮播图的时候,首先就百度了篇轮播图的实现,当时还不知道自己百度的其实不是原生的JS代码,而是用jquery完成的,当时也是初识JS,然后就一脸懵逼的看了视频,结果好像还看懂了,于是跟着他的代码像做着世界上最伟大的事一样的敲着代码,编译的时候却没反应,经过一些了解后才发现这是用传说中的jquery完成的。尽管第一次接触jquery不是为接触而接触的,但是也意识到了他强大的功能。
真正接触jquery:
jquery是一种轻量级的javascript库不仅兼容了css3,还兼容各种浏览器。当我们再做一个项目时,需要做一些底层的东西,就是说兼容,像一些方法,网页事件,动画,DOM操作、Ajax封装等,他可以在最底层为事件做兼容,除此外,jquery还具有强大的选择器。
讲真,jquery强大的选择器真的把我给吓到了,虽说“兵不在多而在于精“,但是jquery”多多益善“的各种选择器给我们操作页面元素带来了大大的方便,这里我就先讲讲我对【id选择器、类选择器、元素选择器、全选择器、层级选择器、基本筛选选择器、内容筛选选择器、可见性筛选选择器】的理解即总结。
页面的任何操作都需要节点的支撑,开发者如何快速高效的找到指定的节点也是前端开发中的一个重点。jQuery提供了一系列的选择器帮助开发者达到这一目的,让开发者可以更少的处理复杂选择过程与性能优化,更多专注业务逻辑的编写。
【id选择器】
一个用来查找的ID的选择器,即元素的id属性。
$("#id");
id选择器也是基本的选择器,jQuery内部使用JavaScript函数document.getElementById()来处理ID的获取。原生语法的支持总是非常高效的,所以在操作DOM的获取上,如果能采用id的话尽然考虑用这个选择器
注意:id是唯一的,每个id值在一个页面中只能使用一次。如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。但这种行为不应该发生;有超过一个元素的页面使用相同的id是无效的。
【类选择器】
通过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>
)
选择器之间的相似与不同:
1、层级选择器都有一个参考节点
2、后代选择器包含子选择器的选择的内容
3、一般兄弟选择器包含相邻兄弟选择的内容
4、相邻兄弟选择器和一般兄弟选择器所选择到的元素,必须在同一个父元素下
【基本筛选选择器】
为了方便能直接找到所需的DOM节点元素,jQuery提供了一系列的筛选选择器用来更快捷的找到所需的DOM元素。
筛选选择器的用法与CSS中的伪元素相似,选择器用冒号“:”开头,通过一个列表,看看基本筛选器的描述:
【内容筛选选择器】
基本筛选选择器针对的都是元素DOM节点,如果我们要通过内容来过滤,jQuery也提供了一组内容筛选选择器。几种方式描述:
【可见性筛选选择器】
元素有显示状态与隐藏状态,jQuery根据元素的状态扩展了可见性筛选选择器:visible与:hidden。描述:
如果元素中占据文档中一定的空间,元素被认为是可见的。
我们有几种方式可以隐藏一个元素:
1宽度和高度都显式设置为0。2、CSS visibility的值是hidden,display的值是none。3type="hidden"的表单元素。
【总结】
这里这是jquery的部分选择器,但是看起来都很多了,对于记忆性的东西本来就很枯燥,除了机械记忆外,还应该在不断地练习中掌握它的原理及用法,还有遇到一些简称的代码,最好去查一下他的全称,记忆会更牢固。例如:基本筛选选择器中,eq全称是equal(意思是“等于”);gt全称是greater than(意思是大于);lt全称是less than(意思是小于)。
手已经申请休假了~~~~~~
初识JQuery(1)-选择器的更多相关文章
- JQuery --- 第一期 (初识jQuery, JQuery核心函数和工具方法)
个人学习笔记 初识jQuery 1.我的第一个JQuery <!DOCTYPE html> <html lang="en"> <head> & ...
- (李南江jQuery+Ajax)第一章:初识jQuery
第一章:初识jQuery 一.原生的JS与jQuery的区别 <!DOCTYPE html> <html lang="en"> <head> & ...
- JQuery制作网页——第五章 初识 jQuery
1.jQuery简介: ● jQuery由美国人John Resig于2006年创建 ● jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装 ● 它的设计 ...
- JavaScript交互式网页设计 • 【第6章 初识jQuery】
全部章节 >>>> 本章目录 6.1 jQuery概述 6.1.1 初识 jQuery 6.1.2 jQuery 基本功能 6.1.3 搭建 jQuery 开发环境 6.1 ...
- jQuery 的选择器常用的元素查找方法
jQuery 的选择器常用的元素查找方法 基本选择器: $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myE ...
- HTML 学习笔记 JQuery(选择器)
学习前端也有一段时间了,今天终于进入到JQuery阶段了,对于新手来讲,JQuery的选择器类型之多 功能之强大实在不是一天两天能够记得完的.现在,就采用边学边记录的方式.以后要是忘了的话,也有一个地 ...
- jQuery的选择器中的通配符总结
1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']&quo ...
- JQuery 层次选择器
<!DOCTYPE HTML> <html> <head> <title> 使用jQuery层次选择器 </title> <scrip ...
- jQuery过滤选择器
//基本过滤器$('li:first').css('background','#ccc');//第一个元素$('li:last').css('background','red');//最后一个元素$( ...
随机推荐
- do{}while(0)与CC_BREAK_IF的绝妙搭配
从一開始认为没有必要,到认为很好用.我经历了大概两个月的时间,以下来总结一下什么情况下使用这样的结构吧. 第一种情况:当载入文件的时候,假设载入文件失败,须要报错的时候. 当前,能够用try{}cat ...
- vi相关命令
vi相关命令在行首加# :% s/^/# 删除# :% s/#//在行末加# :% s/$/# 删除 :% s/#$ ...
- PHP-Manual的学习----【语言参考】----【类型】-----【Interger类型】
2017年7月20日15:48:46Integer 整型 1.什么是整数?正数 0 负数2.整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +). 二进制表达的 ...
- iOS CLLocationManager定位
本文转载至 http://www.tuicool.com/articles/7JBRZn 在iOS8以前的版本中,我们使用CLLocationManager定位是没有问题的,最近在iOS8系统中却无法 ...
- 附004.Kubernetes Dashboard简介及使用
一 Kubernetes dashboard简介 1.1 Web UI简介 dashboard是基于Web的Kubernetes用户界面.可以使用dashboard将容器化应用程序部署到Kuberne ...
- EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法
EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源"拉"到服务器,再通过转发协议转发给多个客户 ...
- 【译】StackOverflow——Java 中的 finally 代码块是否总会被执行?
问题 有一个 try/catch 代码块,其中包含一个打印语句.finally代码块总会被调用么? 示例: try { something(); return success; } catch (Ex ...
- 我的Android进阶之旅------>Android疯狂连连看游戏的实现之状态数据模型(三)
对于游戏玩家而言,游戏界面上看到的"元素"千变万化:但是对于游戏开发者而言,游戏界面上的元素在底层都是一些数据,不同数据所绘制的图片有所差异而已.因此建立游戏的状态数据模型是实现游 ...
- IDEA 配置Tomcat 跑Jeecg项目
最近搞了个国人开发的开源项目,还不错,记录一下踩过得坑; 首先项目开源地址 下载就可以; 准备工作作者以介绍,不再详述; 1:我使用的IDEA作为开发工具- 首先导入pom.xml,下载依赖包(此过程 ...
- Linux 下 Crontab 命令使用详解 定时任务
一. Crontab 介绍 crontab命令的功能是在一定的时间间隔调度一些命令的运行. 1.1 /etc/crontab 文件 在/etc文件夹下有一个crontab文件,这里存放有系统运行的一 ...