jQuery 1.x 版本和 2.x 版本有什么区别?
目前jQuery有三个大版本:
- 1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)
- 2.x:不兼容ie678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
- 3.x:不兼容ie678,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。目前该版本是官方主要更新维护的版本。最新版本:3.3.1(2018年5月20日)
jQuery 常见的选择器
.eq
- 解释:对于一个给定的结果集,可以通过eq方法获取指定index的jquery对象
- 用法:
$('div').eq(3)
; // 获取结果集中的第四个jQuery对象
.next / .prev
- 解释:next取得匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。如果提供一个选择器,那么只有紧跟着的兄弟元素满足选择器时,才会返回此元素。prev正好相反,获取元素之前的同辈元素
- 用法:
$('.test').next()
; // 获取匹配的元素集合之后紧邻的同辈元素集合 - 用法:
$('.test').prev('li')
; // 获取匹配的元素集合之前紧邻的同辈li元素集合
.nextAll / .prevAll
- 解释:nextAll获得每个匹配元素集合中每个元素所有后面的同辈元素,选择性筛选的选择器,prevAll与之相反,获取元素前面的同辈元素
- 用法:
$('.test').nextAll()
; // 获取匹配的元素集合之后的所有同辈元素集合 - 用法:
$('.test').prevAll()
; // 获取匹配的元素集合之后的所有同辈元素集合
.siblings
- 解释:获得匹配元素集合中每个元素的兄弟元素,可以提供一个可选的选择器
- 用法:
$('li.third-item').siblings()
//获取匹配元素集合中每个元素的兄弟元素
.parent / .parents
- 解释:parent取得匹配元素集合中,每个元素的父元素,可以提供一个可选的选择器
- 解释:parents取得集合中每个匹配元素的祖先元素,可以提供一个可选的选择器作为参数
- 用法:
$('.test').parent();
// 获取匹配的元素集合中每个元素的父元素 - 用法:
$('.test').parents()
; // 获取匹配的元素集合中每个元素的祖先元素
.children / .find
- 解释:children取得匹配元素集合中每个元素的子元素,选择器选择性筛选
- 解释:find查找符合选择器的后代元素
- 用法:
$('ul.level-2').children()
//取得匹配元素集合中每个元素的子元素 - 用法:
$('ul').find('li.current')
; //在匹配元素集合中每个元素后代中查找li.current元素
.filter
- 解释:.filter(selector),.filter(function(index))筛选当前结果集中符合条件的对象,参数可以是一个选择器或者一个函数
- 用法
$('li').filter(':even').css( "background-color", "red" )
; //为匹配元素集合的偶数项设置背景颜色 - 用法:
$('li').filter(function(index) {return index % 3 == 2;})
//从选中元素集合中选取index为2、5、8..项的li元素
.has
- 解释:
.has(selector),.has(dom)
筛选匹配元素集合中的那些有相匹配的选择器或DOM元素的后代元素 - 用法
$('li').has('span')
// 匹配后代中有span元素的li元素
.is
- 解释:.is(selector), is(function(index)), is(dom/jqObj)判断当前匹配的元素集合中的元素,是否为一个选择器,DOM元素,或者jQuery对象,如果这些元素至少一个匹配给定的参数,那么返回true
- 用法:
if ( $(target).is("li") ) { $(target).css("background-color", "red");}
//用于判断选择的元素是不是li元素,如果是的话,为其添加红色背景颜色