Jquery伪选择器学习笔记
对于我这个半路出家的前端,使用jquery已经很长时间了,对于选择器,一直都局限在id,class,element选择器。每次写一个元素都得想一个id,一个页面写下来想id名都想的累的慌。最近手头项目比较多,头晕脑胀的,遂决定每天下班回去还是得学学jquery的其它强大选择器,边学边做点笔记吧。
一、伪选择器
:first / :last
匹配找到的第一个/最后一个子元素
:first-child / :last-child
匹配第一个/最后一个元素
笔记:这两组是最先让我分不清的。看着解释好像差别不是很大。但举个例子来看,就会发现大不同了。
<div id="div1">
<p id="p1">p1</p>
</div>
<div id="div2">second</div>
<div id="div3">
<p id="p2">p2</p>
<p id="p3">p3</p>
<p id="p4">
<span id="span1">span1</span>
<span id="span2">span2</span>
</p>
</div>
<div id="div4">
<p id="p5">p5</p>
</div>
<table>
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
<tr><td>4</td></tr>
</table>
// A
$("td:first").css('color','blue');
$("p:first").css('color','red'); // B
$("td:first-child").css('color','blue');
$("p:first-child").css('color','red');
结果:A:
B:
为何一个一点的差别,结果确是如此大区别呢?
jquery手册上解释:
这样的解释也许还不太明白,但是换一种说法就明白多了,:firstchild在匹配的时候,先找到它的父元素,然后再把所有父元素的第一个子元素匹配出来,而:first只匹配第一个父元素的第一个子元素。
p的父元素div,:firstchild能匹配上p1,p2,p5,而:first只能匹配上p1
td的父元素是tr,:firstchild能匹配上1,2,3,4,而:first只能匹配第一个1。
Jquery伪选择器学习笔记的更多相关文章
- jquery源码学习笔记三:jQuery工厂剖析
jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...
- 锋利的jquery第二版学习笔记
jquery系统学习笔记 一.初识:jquery的优势:1.轻量级(压缩后不到30KB)2.强大的选择器(支持css1.css2选择器的全部 css3的大部分 以及一些独创的 加入插件的话还可支持XP ...
- jquery基础知识学习笔记
jquery是一个js库/常用版本是jjquery-1.7.2.js/这个版本主要是用来做开放用途 做产品的时候是用它的min版本.玩jquery的时候,不管干啥都要花钱(美元) 注意点: 1.s ...
- 菜鸟的jQuery源码学习笔记(二)
jQuery对象是使用构造函数和原型模式相结合的方式创建的.现在来看看jQuery的原型对象jQuery.prototype: jQuery.fn = jQuery.prototype = { //成 ...
- jQuery HTML操作学习笔记
学习资料 jQuery教程 获取 1.获取.设置元素的内容 1.1获取或设置目标元素的文本内容 语法 $(selector).text(); 获取元素文本内容 $(selector).text(con ...
- jQuery 1.7_20120209 学习笔记
html([val|fn]) parameters: function(index,html) 此函数返回一个html字符串,接受两个参数,index为元素在集合中的索引位置,html为原先的html ...
- CSS3选择器学习笔记
CSS选择器总结: 一.基本选择器 1.通配选择器:[ * ] 选择文档中所以HTML元素. *{margin: 0;padding: 0;} /*选择页面中的所有元素并设置marg ...
- 2016年11月2日——jQuery源码学习笔记
1.jQuery()函数,即$().有四种不同的调用方式. (1)传递CSS选择器(字符串)给$()方法,返回当前文档中匹配该选择器的元素集.可选第二个参数,一个元素或jQuery对象,定义元素查询的 ...
- 菜鸟的jQuery源码学习笔记(前言)
前言 相信任何一名前端开发人员或者是前端爱好者都对jQuery不陌生.jQuery简单易用,功能强大,特别是拥有良好的浏览器兼容性,大大降低了前端开发的难度,使得前端开发变得“平易近人起来”.自从本人 ...
随机推荐
- redis常见错误
1.Redis Error --MISCONF Redis is configured to save RDB snapshots省略 分析:(linux)未用root启动,用的app用户(没有最高权 ...
- 百度——LBS.云 v2.0——创建自己的地理云数据
随着云技术和地理信息(GIS)技术的发展,今年终于进入了.地理分享的新纪元.百度提供了LBS的云存储.真是个不错的功能.下面让我们来看看如何使用吧. 1.注册百度开发者账号(此处略去88个字) 2.创 ...
- Python基础类型
1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric ...
- cogs 1008 贪婪大陆
/* 不要思维定视 盯着线段树维护l r 的ans不放 显然没法区间合并 换一种思路 如果打暴力的话 O(nm) 每次询问 扫一遍之前所有的修改 有交点则说明种数++ 接下来考虑如何优化 我们把每个区 ...
- C#学习(三)
通过类创建对象的过程称为类的实例化 匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型. 要将匿名类型或包含匿名类型的集合作为参数传递给某一方法,可将参数作 ...
- MyEclipse Web Project导入Eclipse Dynamic Web Project,无法部署到tomcat问 题
做作业遇到一个小问题,将MyEclipse Web Project导入到Eclipse中开发.在部署到tomcat时,发现无法发布这个项目. 问题分析: MyEclipse Web Project被识 ...
- linux执行文件命令
1.如果path中有你的程序所在的目录,那么直接执行filename即可 2.如果path中没有程序所在目录,那么进入目录./filename或者path/filename 比如 wj@ubuntu: ...
- android 检查网络是否可用,如果不可用弹出设置,让用户改变
/** * 校验网络,如果没有网络,返回true * * @return boolean */ @Override public boolean hasInternetConnected() { Co ...
- office - 连接字符串.
Microsoft ACE OLEDB 12.0 Connect to Excel 2007 (and later) files with the Xlsx file extension. That ...
- 小学生之解析XML应用
1.什么是XML? 解析:XML:Extensible Markup Language(可扩展标记语言) HTML:HyperLink Text Markup Language(超文本标记语言) ...