jQuery选择器

jQuery选择器

jQuery选择器完全继承了CSS的风格。学会使用选择器是学习jQuery的基础,jQuery的行为规则必须在获取到元素之后才能生效。

jQuery选择器相比较getELementById()传统函数简洁的多,而且还能避免某些错误。当使用getELementById('#cr')时,若网页中没有id为cr的元素时,此时会报错。而使用jQuery就不会报错,jQuery获得的始终是一个对象。

基本选择器

  • id选择器 $('#test')
  • 类选择器 $('.test')
  • 元素选择器 $('p')
  • 通配符选择器 $('*') //选取所有的元素
  • 选择多个元素并集体返回 $(div,span,p.myClass) //选取所有的<div>,<span>以及class为myClass的<p>标签的一组元素

层次选择器

  • $('ancestor descendant') //选取ancestor元素里的所有descendant(后代)元素
  • $('parent>chlid') //只选取parent元素下的child子元素
  • $('prev+next') //选取紧邻在prev元素后的下一个next同辈元素
  • $('prev~siblings') //选取紧邻在prev元素后的所有siblings同辈元素

可以使用next()方法来替代$('.prev+next')选择器。$('.prev+next') == $('prev').next('next')
可以使用nextAll()方法来替代$('#prev~siblings')选择器。$('#prev~next') == $('#prev').nextAll('next')

过滤选择器

1. 基本过滤选择器

  • :first 选取第一个元素(返回单个元素)
    $('div:first')选取所有div元素中的第一个div元素
  • :last 选取最后一个元素(返回单个元素)
    $('div:last')选取所有div元素中的最后一个div元素
  • :not(selector) 去除所有与给定选择器匹配的元素(返回集合元素)
    $('input:not(.myClass)')选取class不是myClass的input元素
  • :even 选取索引是偶数的所有元素,索引从0开始(返回集合元素)
    $('input:even')选取索引是偶数的input元素
  • :odd 选取索引是奇数的所有元素,index从0开始(返回集合元素)
    $('input:odd')选取索引是奇数的input元素
  • :eq(index) 选取索引是index的元素,索引从0开始(返回单个元素)
    $('input:eq(1)')选取索引是1的input元素
  • :gt(index) 选取索大于index的元素,索引从0开始(返回集合元素)
    $('input:gt(1)')选取索引大于1的input元素
  • :lt(index) 选取索引小于index的元素,索引从0开始(返回集合元素)
    $('input:lt(1)')选取索引小于1的input元素
  • :header 选取所有的标题元素,例如h1,h2,h3...(返回集合元素)
    $(':header')选取网页中的所有标题
  • :animated 选取所有正在执行动画的元素(返回集合元素)
    $('div:animated')选取正在执行动画的div元素
  • :focus 选取当前获取焦点的元素 (返回集合元素)
    $(':focus') 选取当前获取焦点的元素

2.内容过滤选择器

内容过滤选择器的过滤规则主要体现在它所包含的子元素和文本内容上。

  • :contains(text) 选取文本内容为text的元素(返回集合元素)
    $('div:contains('me')') 选取含有文本me的div元素
  • :empty 选取不包含子元素或者文本的空元素(返回集合元素)
    $('div:empty') 选取不包含子元素或者文本的空元素
  • :has(selector) 选取选择器所匹配的元素的元素(返回集合元素)
    $('div:selector(p)') 选取含有p元素的div元素
  • :parent 选取包含子元素或者文本的元素(返回集合元素)
    $('div:parent') 选取包含子元素或者文本的div元素

3. 可见性过滤选择器

可见性过滤选择器是根据元素的可见和不可见状态来选中相应的元素

  • :hidden 选取所有不可见的元素(返回集合元素)
    $(':hidden') 选取选取所有不可见的元素
  • :visible 选取所有可见的元素(返回集合元素)
    $(':visible') 选取选取所有可见的元素
    在可见性过滤选择器,需要注意选择器:hidden,它不仅包含样式属性display为none的元素,也包括文本隐藏域(<input type='hidden'/>)和visibility:hidden之类的元素

4. 属性过滤选择器

属性过滤选择器的规则是通过元素的属性来获取相应的元素。

  • [attr] 选取拥有此属性的元素(返回集合元素)
    $('div[id]') 选取拥有属性id的div元素
  • [attr=value] 选取属性值为value的元素(返回集合元素)
    $('div[title=test]') 选取属性title为test的div元素
  • [attr=!value] 选取属性值不为value的元素(返回集合元素)
    $('div[title=!test]') 选取属性title为不test的div元素(没有title的属性也会被选中)
  • [attr^=value] 选取属性值以value开头的元素(返回集合元素)
    $('div[title^=test]') 选取属性title以test开头的div元素
  • [attr$=value] 选取属性值以value结尾的元素(返回集合元素)
    $('div[title$=test]') 选取属性title以test结尾的div元素
  • [attr*=value] 选取属性值包含value的元素(返回集合元素)
    $('div[title*=test]') 选取属性title中含有test的div元素

5. 子元素过滤选择器

子元素过滤选择器的规则相对应其他选择器有些复杂,需要将元素的子元素和父元素区分清楚,还要注意它和普通过滤选择器的区别。

  • :nth-child(index/even/odd/equation) 选取每个父元素下的第index个子元素或奇偶元素。(index从1算起)**(返回集合元素)
    :eq()只匹配一个元素,而:nth-child()将为每一个父元素匹配子元素
  • :first-child 选取每一个父元素的第一个子元素(返回集合元素)
$('ul li:first').css('color','#f0833c');    //选取所有li中的第一个li元素
$('ul li:first-child(odd)').css('color','#0f00c3'); //选取每一个父元素ul中的第一个子元素
  • :last-child 选取每一个父元素的最后一个子元素(返回集合元素)
  • :only-child 如果某个元素是它父元素中的唯一的子元素,那么它将会被匹配。如果父元素中含有其它子元素就不被匹配。(返回集合元素)
    $('ul li:only-child'); 在ul中选取是唯一子元素的li元素

千万注意:ntn-child中的index是从1开始的

6. 表单对象属性过滤选择器

  • :enabled 选取所有可用元素(返回集合元素)
    $('#form1:enabled') 选取id为form1中所有可用的元素
  • :disabled 选取所有不可用元素(返回集合元素)
    $('#form1:disabled ') 选取id为form1中所有不可用的元素
  • :checked 选取所有被选中的元素。单选框、复选框(返回集合元素)
    $('input:checked') 选取所有被选中的input元素
  • :selected选取所有被选中的选项元素。下拉列表(返回集合元素)
    $('#form1:selected') 选取所有被选中的选项的元素

表单选择器

为了使用户能够更加灵活的操作表单,jQuery特地加入了表单选择器。

  • :input 选取所有的input、textarea、select、button元素
  • :text 选取所有的单行文本框
  • :password 选取所有的密码框
  • :radio 选取所有的单选框
  • checkbox 选取所有的复选框
  • :submit 选取所有的提交按钮
  • :img 选取所有的图像按钮
  • :reset 选取所有的重置按钮
  • :button 选取所有的按钮
  • :file 选取所有的上传域
  • hidden 选取所有的不可见元素

关于选择器中的空格问题

  • .test .aa = E F是后代选择器
  • .test.aa 是作用于一个元素上,只有这个元素同时包含这两个类才会有效果
    带空格的选择器之间的关系是“父子关系”,并且可以是非直接父子关系。不带空格的选择条件之间的逻辑为“且”
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容