0

0

jQuery源码之选择器的学习

不言

不言

发布时间:2018-07-09 15:31:16

|

1609人浏览过

|

来源于php中文网

原创

这篇文章主要介绍了关于jquery源码之选择器的学习 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

选择器

一、选择器分类

jQuery的选择器和CSS的选择器非常相似

大致可以分为几类:
基本筛选器: eq get first lang It not odd root...
内容筛选器: contains empty has parent...
可见筛选器: hidden visible
子元素筛选器: first-child nth-child only-child...
表单: bottom checkbox foucs input text...

二、选择器API

id
$('#app')
/* 如果含有特殊字符 */
$('#app\\:ip')  ==> id="app:ip"
class
$('.class')
element
$('p')
*
$('*')
/*匹配全部 */
selector1,selector2,selector3
$('p,#p,.class,span.love')
parent selector (祖先和后代的关系)
/* 指定的祖先元素下的所有的后代元素 */
$('form input') /* result */ /* [ , ] */
parent > child (父亲和儿子的关系)
/* 匹配父元素下的所有的子元素 */
$('form > input') /* result */ /* [ ] */
prev + next  (下一个兄弟关系)
/* 匹配所有跟在prev后面的下一个元素 */
$('label + input') /* result */ /* [ , ] */
prev ~ siblings  (下面的所有兄弟元素)
/* 匹配prev后面的所有的兄弟元素 */
$('#name ~ input') /* result */ /* */
:first

获取匹配的第一个元素

$('input:first')
$('ul li:first');

// 捕获到同类型元素后,在取其第一个
:not(selector)

去除选定的selector那部分

// 去除已选择的元素中的部分
$('input:not(:checked)')



// result
// [  ]
:even(index)
// 匹配索引为偶数的,从 0 开始计数(将0包含进even)
// 第 1,3,5,7 行
//

$('tr:even')
:odd(index)
// 匹配索引为奇数的
// 第2,4,6,8 行
:eq(index)
// 匹配给定一个索引

$('tr:eq(1)')
:gt(index)
// 匹配大于索引值的项
$('tr:gt(1)')
:lang(language)    1.9+
// 匹配指定语言的元素
$('p:lang(en)')
// 选择器$("p:lang(en)")将匹配

and

(和他们的后代

),但不包括

:last
// 获取匹配的最后个元素
$('p:last')
:lt(index)
// 匹配索引小于指定值
//
$('p:lt(4)')
:header
// 匹配所有的标题元素
// h1 h2 h3 h4 h5 h6
$(":header").css("background", "#EEE");
:animated
// 匹配所有正在执行动画的元素

$('p:not(:animated)').animate({ left: '+=20px' },1000);
:focus   1.6+
// 匹配当前获取焦点的元素。
$('input:focus').css("background":"#ccc");
:root  1.9+
// 匹配页面的根元素
$(':root').css("background":"yellow");
// 设置背景颜色为黄色
:target   1.9+
// 如果url中包含有http://example.com/#foo
$('a:target')
// 就是选中了 
:contains(text)
// 匹配包含给定文本的
$('p:contains('join')');
:empty()
$('p:empty')
// 匹配不包含子元素或文本内容
Value 1
Value 2
$('td:empty') // [ , ]
:has()
// 匹配含有has内部选择器选中的元素的元素
$('p:has('p')')
:parent  与empty相反
// 匹配含有子元素或者文本内容的
$('td:parent')
Value 1
Value 2
// Value 1Value 2
:hidden
// 匹配不可见的元素
//
$('input:hidden')
:visable
// 匹配可见的元素
Value 1
Value 2
$('tr:visable') // Value 2 ]
[attribute]
// 匹配包含给定属性的元素
$('input[name]')
[attribute=value]
// 匹配给定的属性是某个特定值的元素
$('input[name="sex"]')
[attribute!=value]
[attribute^=vlaue]
// 匹配属性以value开头
[attribute$=value]
// 匹配属性以value结尾
[attribute*=value]
// 匹配属性包含某些值的元素
selector1[selector3]
// 匹配同时满足多个属性选择器的元素
$("input[id][name$='man']")
:first-child
// 匹配所给选择器( :之前的选择器)的第一个子元素,最终的结果可能是多个,不同于:first 之处是,:first是指匹配到的元素(:之前的元素)的第一个。

  • John
  • Karl
  • Brandon
  • Glen
  • Tane
  • Ralph
$('ul li:first-child'); // [
  • John
  • ,
  • Glen
  • ]
    :first-of-type
    // [1]
    $('span:first-of-type')
    // 匹配到span元素,而且这个span元素是其父级的第一个span
    
    

    span1 span2 span3

    span1 span2

    // span1 span1 // 【2】 $('.abc:first-of-type')

    span1 span2 span3

    span1 span2

    //

    span1
    :last-child

    同理:first-child

    :last-of-type
    :nth-child(n)

    n可以是:
    序号、even、odd、(3n+2)
    (3n+2)表示从第二个开始,匹配3的倍数的元素

    // 这里的n是从1 开始的,跟:first-child类似
    
    • John
    • Karl
    • Brandon
    • Glen
    • Tane
    • Ralph
    $('ul li:nth-child(2)') //
  • Karl
  • Tane
  • :nth-last-child(n)

    n可以是:
    序号、even、odd、(3n+2)
    (3n+2)表示从第二个开始,匹配3的倍数的元素

    跟:nth-child(n) 类似,只是它是从后往前算的

    only-child
    // 如果某个元素是父元素中唯一的子元素,那将会被匹配
    
    • John
    • Karl
    • Brandon
    • Glen
    $('ul li:only-child') //
  • Glen
  • :input

    匹配所有 input, textarea, select 和 button 元素

    // 全选$(':input')
    :text
    $(':text') //
    :password
    $(':password') //
    :radio
    $(':radio') //
    :submit
    $(':submit') //
    :image
    $(':image') //
    :reset

    :button

    玻璃钢企业网站源码1.5
    玻璃钢企业网站源码1.5

    本程序源码为asp与acc编写,并没有花哨的界面与繁琐的功能,维护简单方便,只要你有一些点点asp的基础,二次开发易如反掌。 1.功能包括产品,新闻,留言簿,招聘,下载,...是大部分中小型的企业建站的首选。本程序是免费开源,只为大家学习之用。如果用于商业,版权问题概不负责。1.采用asp+access更加适合中小企业的网站模式。 2.网站页面div+css兼容目前所有主流浏览器,ie6+,Ch

    下载

    :file

    :enabled

    选择可用的元素

    $("input:enabled") //
    :disabled

    选择不能使用的

    :checked
    $("input:checked")
    :selected
    $('option:selected')

    三、css解析原理

    以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

    相关推荐:

    jQuery源码之数据缓冲的学习

    jQuery源码之异步机制的解析

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    2026赚钱平台入口大全
    2026赚钱平台入口大全

    2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

    33

    2026.01.31

    高干文在线阅读网站大全
    高干文在线阅读网站大全

    汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

    32

    2026.01.31

    无需付费的漫画app大全
    无需付费的漫画app大全

    想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

    36

    2026.01.31

    漫画免费在线观看地址大全
    漫画免费在线观看地址大全

    想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

    7

    2026.01.31

    漫画防走失登陆入口大全
    漫画防走失登陆入口大全

    2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

    11

    2026.01.31

    php多线程怎么实现
    php多线程怎么实现

    PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

    1

    2026.01.31

    php如何运行环境
    php如何运行环境

    本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

    0

    2026.01.31

    php环境变量如何设置
    php环境变量如何设置

    本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

    0

    2026.01.31

    php图片如何上传
    php图片如何上传

    本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

    2

    2026.01.31

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    jQuery 教程
    jQuery 教程

    共42课时 | 5.1万人学习

    HTML+CSS基础与实战
    HTML+CSS基础与实战

    共132课时 | 9.9万人学习

    tp6+adminlte搭建通用后台
    tp6+adminlte搭建通用后台

    共39课时 | 5.8万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号