jQuery选择器及部分 api 的用法

使用jQuery获取元素

  • jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
  • jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
  • jQuery 中所有选择器都以美元符号开头:$()。
  • jQuery为了方便使用者刻意和CSS选择器使用相同的语法,几乎支持所有类型的CSS3选择器,当然也有一些其特定的选择器

jQuery 元素选择器

jQuery 使用 CSS 选择器来选取 HTML 元素。

$("p") 选取 <p> 元素。
$("p.intro") 选取所有 class="intro" 的 <p> 元素。
$("p#demo") 选取所有 id="demo" 的 <p> 元素。

jQuery 属性选择器

jQuery 使用 XPath(XPath 是一门在 XML 文档中查找信息的语言,XPath 用于在 XML 文档中通过元素和属性进行导航。) 表达式来选择带有给定属性的元素。

$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。

jQuery CSS 选择器

jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。

$("p").css("background-color","red");

选择器

基本,组合/层次选择器.png

基本过滤选择器.png

内容,可视化,属性过滤选择器.png

子元素,表单元素选择器.png

可以看出来基本上和css选择器差不多,就感觉是在复习css选择器一样,简直不要太爽.

部分 api 的用法

除了使用选择器jQuery还提供了一些方法帮助我们查找当前元素相关元素

.eq(index), .get([index])

对于一个特定结果集,我们想获取到指定index的jQuery对象,可以使用eq方法

$('div').eq(3);    获取结果集中的第四个jQuery对象

我们可以通过类数组下标的获取方式或者get方法获取指定index的DOM对象,也就是我们说的jQuery对象转DOM对象

$('div')[2];
$('div').eq(2);

get()不写参数把所有对象转为DOM对象返回

兄弟元素获取

.next([selector]), .prev([selector])

next取得匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。如果提供一个选择器,那么只有紧跟着的兄弟元素满足选择器时,才会返回此元素。prev正好相反,获取元素之前的同辈元素

$("h2").next();    返回 <h2> 的下一个同胞元素

.nextAll([selector]), .prevAll([selector])

nextAll获得每个匹配元素集合中每个元素所有后面的同辈元素,选择性筛选的选择器,prevAll与之相反,获取元素前面的同辈元素

$("h2").nextAll();  返回 <h2> 的所有跟随的同胞元素

.siblings([selectors])
获得匹配元素集合中每个元素的兄弟元素,可以提供一个可选的选择器

$("h2").siblings();  返回 <h2> 的所有同胞元素

也可以使用可选参数来过滤对同胞元素的搜索。

$("h2").siblings("p");   返回属于 <h2> 的同胞元素的所有 <p> 元素

nextUntil() , prevUntil() 方法

nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。prevAll与之相反,获取元素前面的同胞元素

$("h2").nextUntil("h6");  返回 <h2> 的所有跟随的同胞元素

父子元素获取

children() 方法
返回被选元素的所有直接子元素,选择器选择性筛选
该方法只会向下一级对 DOM 树进行遍历。

 $("div").children();   返回每个 <div> 元素的所有直接子元素

也可以使用可选参数来过滤对子元素的搜索。

 $("div").children("p.1");   返回类名为 "1" 的所有 <p> 元素,并且它们是 <div> 的直接子元素

find() 方法
返回被选元素的后代元素,一路向下直到最后一个后代。

$("div").find("span");   返回属于 <div> 后代的所有 <span> 元素
 $("div").find("*");    返回 <div> 的所有后代

parent() 方法

$("span").parent();    返回每个 <span> 元素的的直接父元素

返回被选元素的直接父元素。


parents() 方法
返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。

$("span").parents();   返回所有 <span> 元素的所有祖先

也可以使用可选参数来过滤对祖先元素的搜索。

$("span").parents("ul");   返回所有 <span> 元素的所有祖先,并且它是 <ul> 元素

parentsUntil() 方法
返回介于两个给定元素之间的所有祖先元素。

$("span").parentsUntil("div");  返回介于 <span> 与 <div> 元素之间的所有祖先元素

筛选当前结果集

first() 方法
返回被选元素的首个元素。

$("div p").first();   选取首个 <div> 元素内部的第一个 <p> 元素

last() 方法
返回被选元素的最后一个元素.

$("div p").last();   选择最后一个 <div> 元素中的最后一个 <p> 元素

filter() 方法
允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。参数可以是一个选择器或者一个函数

$("p").filter(".url");   返回带有类名 "url" 的所有 <p> 元素
$('li').filter(function(index) {
  return index % 3 == 2;
})   返回下标除以3余数为2的所有li元素

not() 方法
返回不匹配标准的所有元素。

$("p").not(".url");   返回不带有类名 "url" 的所有 <p> 元素

has() 方法
返回拥有匹配指定选择器的一个或多个元素在其内的所有元素,如需选取拥有多个元素在其内的元素,请使用逗号分隔。

$("p").has("span");   返回拥有一个 <span> 元素在其内的所有 <p> 元素

is() 方法
用于查看选择的元素是否匹配选择器。

if ($("p").parent().is("div")) {
    alert("p 的父元素是 div");
}    如果 <p> 的父元素是 <div> 元素,弹出提示信息

总结

以上就是关于jQuery选择器及部分 api 的用法,并给出具体实例,希望对有需要的人所有帮助。

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

推荐阅读更多精彩内容