li923

Jquery选择器

 
1)选择器写法:$( )---> $(\'div\') 字符串
 
根据css样式来进行选取。css叫做添加样式,但是jQuery叫做添加行为。
选择器
CSS模式
jQuery模式
描述
标签名
div{}
$(\'div\')
获取所有div标签的DOM元素
ID
#box{}
$(\'#box\')
获取一个ID为box的DOM对象
class(类名)
.box{}
$(\'.box\')
获取所有class名为box的DOM对象
 
一个小的知识点:ID选择器的失明现象。
 
    ID在一个页面中只能出现一次,这是一个唯一标识符。在jQuery中就会存在问题。
 
    选择器选择出的对象,有一些属性和方法(length,.size())
 

jQuery的兼容性

    css3的子选择器(不兼容IE6)
 
    但是到了jQuery中,jQuery会自行将不兼容IE的问题解决掉。
 
    jQuery的DOM对象和原生JavaScript的DOM对象之间的属性方法是不通用的,但是可以共同存在
 

相互转换:

    $(\'DOM\')[0].style.color=red;
    $(\'DOM\').get(0).style.color=red;
    jQuery的DOM元素转换原生JavaScript的DOM元素
       解析数组 通过get方法
    原生JavaScript的DOM元素转换jQuery的DOM元素
       使用jq的函数包裹原生DOM对象
 

进阶选择器:

选择器
CSS模式
jQuery模式
群组选择器
div,span,p{}
$(\'div,span,p\')
后代选择器
ul li a{}
$(\'ul li a\')
通配选择器
*{}
$(\'*\')
 

通配选择器

选择所有;对性能有极大的浪费所以不能在全局范围内使用,最好的方法就是在局部环境下使用;
 
$(\'ul li a,ul li em,ul li strong\');
 
简化成通配选择器:
 
$(\'ul li *\')
 

高级选择器:

 
1)层次选择器
选择器
css模式
jQuery模式
描述
后代选择器
ul li a{}
$(\'ul li a\')
获取追溯到的所有元素
子选择器
div>p{}
$(\'div>p\')
只获取子类节点
next选择器
div+p{}
$(\'div+p\')
只获取某节点后一个同级DOM元素
nextAll选择器
div~p{}
$(\'div~p\')
获取某节点后所有同级DOM元素
 
 
jQuery为后代选择器提供了一个方法find()这个find方法里面有一个参数,就是想要找到的后代(可以是标签,类名,ID)
 
    $(\'div p\').css(\'color\',\'red\')  ==  $(\'div\').find(\'p\').css(\'color\',\'red\') 
 
jQuery为子选择器提供了一个方法,children(),参数同上;
 
    $(\'div>p\').css(\'color\',\'red\')  == $(\'div\').children(\'p\').css(\'color\',\'red\');
 
jQuery提供了next(), nextAll( ) 选择器,参数同上:注意next()选择器,只选择后一个元素。
 
    $(\'div+p\').css(\'color\',\'red\')  == $(\'div\').next(\'p\').css(\'color\',\'red\')
 
    $(\'div~p\').css(\'color\',\'red\')  == $(\'div\').nextAll(\'p\').css(\'color\',\'red\')
 
注意:children() , next() , nextAll() 这些方法如果不传递参数的话, 那么就默认传递一个通配符*,通常在使用这些选择器的时候,我们需要精准的选择元素,避免发生各种怪异结果。
 

属性选择器:

CSS模式
jQuery模式
描述
input[name]
$(\'input[name]\')
获取具有这个属性的DOM元素
input[name=XXX]
$(\'input[name=XXX]\')
获取具有属性且属性值为XXX的DOM元素
input[value][name=XXX]
$(\'input[value][name=XXX]\')
获取有value 属性且name为XXX的DOM元素
 
....
 

过滤选择器:伪类选择器:

过滤器名
jQuery语法
说明
返回
:first
$(\'li:first\')
选取第一个元素
单个元素
:last
$(\'li:last\')
选取最后一个元素
单个元素
:not(选择器)
$(\'li:not(.red)\')
选取class不是red的元素
一组元素
:even
$(\'li:even\')
选择偶数的所有元素
一组元素
:odd
$(\'li:odd\')
选择所有奇数元素
一组元素
:eq
$(\'li:eq(1)\')
选择对应下表的元素
单个元素
 
 

内容过滤器

过滤器名
 jQuery语法
说明
返回
:contains(text)
$(\'li:contains(123456)\')
选择有123456文本的元素
一组元素
:empty
$(li\':empty\')
选取li中不包含子元素或空文本的元素
一组元素
:has(选择器)
$(\'ul:has(.red)\')
选择子元素含有类red的ul
一组元素
 
 
jQuery为了优化:has选择器性能,提供了一个方法.has()
    
    $(\'ul:has(.red)\')==$(\'ul\').has(\'.red\')
 
 

可见性选择器

过滤器名
jQuery语法
说明
返回
:hidden
$(li:hidden)
选取所有不可见元素
集合元素
:visible
$(\'li:visible\')
选取所有可见元素
集合元素
 
注:是否可见的判定因素为display:block & display :none
 

其他方法:

 
jQuery在选择器和过滤器的基础上提供了一些常用的方法,方便我们开发时灵活使用。
方法名
jQuery语法
说明
返回
is()
li.is(\'.red\')
传递选择器、DOM、jquery对象
true||false
hasClass()
$(\'li\').hasClass(\'red\')
就是is(\'.\'+class)
true||false
 
is()方法
 
    $(\'li\').is(\'.red\');
 
    $(\'li\').hasClass(\'red\');
 
 
.end()终止当前选择器的遍历,回到上个选择条件;
 

分类:

技术点:

相关文章: