jQuery选择器整理

以下是自己在学习jQuery时做的笔记,分享出来

id选择器
例子:$("#id")
id是唯一的,每个id值在一个页面中只能使用一次。如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。但这种行为不应该发生;有超过一个元素的页面使用相同的id是无效的

类选择器
类选择器,相对id选择器来说,效率相对会低一点,但是优势就是可以多选
例子:$(".className")
jQuery除了选择上的简单,而且没有再次使用循环处理,如果用js方法的话会得到一个类数组,需要循环来获得所有元素

元素选择器
例子:  $("element")
同样的效果,$("p")选取所有的元素,通过css方法直接赋予样式同样也不需要循环处理就可以获得所有p元素

全选择器
例子:$("*")
选择所有的元素,如果用原生js,会碰到一些兼容问题

层级选择器
$("parent>child") 子选择器,选择所有指定parent元素中指定的child直接子元素
例子:$("div>p")  表示选择div元素下所有的是p的直接子元素$("div p") 后代选择器,表示选择了div元素下的所有p元素
$("div+p") 相邻兄弟选择器,选择紧接在div元素后的兄弟元素中的p元素,是紧接着的兄弟元素
$("div~p") 一般兄弟选择器,选择div元素后的所有兄弟元素中的p元素

基本筛选选择器
$(".div:first")  选择所以类名为div元素中的第一个元素
$(".div:last") 选择所以类名为div元素中的最后一个元素
$(".div:even")     选择所以类名为div元素中索引值为偶数的元素(索引值从0开始)
$(".div:odd");选择所以类名为div元素中索引值为奇数的元素(索引值从0开始)
$(".aaron:eq(1)")  选择所有类名为aaron的元素中索引值等于1的元素(索引从0开始)
$(".aaron:gt(1)")     选择所有类名为aaron的元素中索引值大于1的元素
$(".aaron:lt(1)")    选择所有类名为aaron的元素中索引值小于1的元素
$("input:not(:checked)+p")   选择在所有input元素中没有checked属性的input元素
$(":header")  选择所有标题元素,比如h1,h2
$(":animated")  选择所有正在执行动画效果的元素

内容筛选选择器(通过内容来进行过滤)
$(".div:contains(指定文本)");选择所有类名为div的元素中包含‘指定文本“的元素
注意:不是完全匹配,且是指定的文本,即元素中如果包含:contains  ,然后我查找contains 也会找出对应的元素
$(":has(selector)")选择所有元素包含指定元素的元素
例子:$(".div:has(span)");  选择所有类名为div的元素中包含span元素的元素
注意:has查找包含“指定元素”的元素,是指定元素不是文本,和contains不一样
$("a:parent");选择了所有包含了子元素或者文本元素的a元素 (包含文本节点和元素)
$("a:empty");选择了所有没有包含子元素的a元素(包含文本节点和元素)

注意::contains与:has都有查找的意思,但是contains查找包含“指定文本”的元素,has查找包含“指定元素”的元素如果:contains匹配的文本包含在元素的子元素中,同样认为是符合条件的。:parent与:empty是相反的,两者所涉及的子元素,包括文本节点

可见性筛选选择器(通过元素显示/隐藏状态来选择)
元素有显示状态与隐藏状态,jQuery根据元素的状态扩展了可见性筛选选择器:visible与:hidden
我们有几种方式可以隐藏一个元素:CSS display的值是none。type="hidden"的表单元素。宽度和高度都显式设置为0。一个祖先元素是隐藏的,该元素是不会在页面上显示。CSS visibility的值是hidden。CSS opacity的值是0如果一个元素占据文档一定空间,元素被认为是可见的,可见元素宽度高度,都大于0

$("#div:visible"); 选择所有id是div的显示的元素
$("$div:hidden")  选择所有id是div的隐藏的元素
其中注意:在jq中,元素的visibility: hidden 或 opacity: 0被认为是可见的,因为他们仍然占用空间布局。不在文档中的元素被认为不可见

属性筛选选择器(基于属性来定位一个元素
$("div[name='p1']")在所有div元素中选择属性name=p1的元素
$("div[p2]");     在所有div元素中选择具有属性p2的div元素
$("div[name|='-']");  在所有div元素中选择属性name的值包含给定字符串“-”的元素
$("div[name~='a']"); 在所有div元素中选择有属性name的值且该值包含连字符空和一个给定字符串的元素
$("div[name^='imooc']");  在所有div元素中选择有属性name且name的值以imooc开头的元素$("div[name$='imooc']");  在所有div元素中选择具有属性name,且name的值以imooc结尾的元素
$("div[name*='test']");  在所有div元素中该选择具有属性name,且name的值包含一个字符串test的元素
$("div[name!='test']");  在所有div元素中选择不存在指定属性或者指定属性的值不等于test的元素
$("div[name][test]");在所有div元素中选择具有属性name且同时又有test的div元素
同时还可以这样:$("div[name][id=‘put']"); 选择所有div元素中具有name 属性且id属性值为put的div元素

子元素筛选选择器
$(".first-div a:first-child");  选择所有类名为first-div 下的所有a元素,如果a元素是其父元素的第一个元素,则会被选中
通用写法:$(":first-child")
$(".first-div a:last-child");  选择所有类名为first-div下的所有a元素,如果a元素是其父元素的最后一个元素,则会被选中
请注意:如果a元素的父元素只有1个a元素,则first-child和last-child选中的元素是一样的
$(".first-div a:only-child"); 选中所有类名为first-div下的所有a元素,如果a元素是其父元素唯一的子元素,则会被选中
$(".last-div a:nth-child(2)");选中所有类名为first-div下的所有a元素,如果a元素是其父元素的第2个子元素,则会被选中
$(".last-div a:nth-last-child(2)");选中所有类名为first-div下的所有a元素,如果a元素是其父元素的倒数第2个子元素则会被选中
请注意:nth-child(n) n是从1开始计数的,而eq(index)是从0开始计算的

表单元素选择器
大部分表单类别筛选器可以使用属性筛选器替换,因为每个表单元素都有一个type值,可以通过[type="value"]进行筛选
$(":input");查找所有 input, textarea, select 和 button 元素,该选择器就是选中所有表单控件$("input:text"); 查找所有input元素中type值等于text的元素
$("input:password");查找所有input元素中type值等于password的元素
$("input:radio"); 匹配所有input元素中的单选按钮
$("input:checkbox");匹配所有input元素中的复选按钮
$("input:submit");    匹配所有input元素中的提交的按钮
$("input:image");    匹配所有input元素中的图像类型的元素
$("input:reset");匹配所有input元素中的重置按钮的元素
$("input:button");匹配所有input元素中类型为按钮的元素
$("input:file");匹配所有input元素中类型为file的元素

表单对象属性筛选选择器(4种)
$("input:enabled"); 查找所有input所有可用的(未被禁用的元素)input元素。
$("input:disabled"); 查找所有input所有不可用的(被禁用的元素)input元素。$("input:checked"); 查找所有input中被勾选的元素(主要单选框,复选框radio,checkbox) ,即被选中的元素$("option:selected");  查找所有select元素下的option元素中且被勾选的元素,即查找所有option元素中,有selected属性被选中的选项

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

推荐阅读更多精彩内容