`
javaeye_hua
  • 浏览: 82196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery selector detail

阅读更多

google dao de,collect

jQuery的选择器是CSS 1-3,XPath的结合物。jQuery提取这二种查询语言最好的部分,融合后创造出了最终的jQuery表达式查询语言。如果你了解CSS(绝大部分WEB开发者都用到的),那么你学起来就很容易了。

同时使用CSS和XPath

看几个例子:

隐藏所有包含有链接的段落:

$("p[a]").hide();

显示页面的第一个段落:

$("p:eq(0)").show();

隐藏所有当前可见的层元素:

$("div:visible").hide();

获取所有无序列表的列表项:

$("ul/li")

 /* valid too: $("ul > li") */

取得name值为bar的输入字段的值:

$("input[@name=bar]").val();

所有处于选中状态的单选r按钮:

$("input[@type=radio][@checked]")

如果你对查询语言的工作原理还有疑问,可以订阅这里的邮件列表

CSS查询器

jQuery完全支持CSS1.3。

关于CSS的一些资料查看下面的连接:

下面列出来的是支持的CSS查询器的列表式语法:

  • * 任何元素
  • E 类型为E的元素
  • E:root 类型为E,并且是文档的根元素
  • E:nth-child(n) 是其父元素的第n个类型为E的子元素
  • E:first-child 是其父元素的第1个类型为E的子元素
  • E:last-child  是其父元素的最后一个类型为E的子元素
  • E:only-child  且是其父元素的唯一一个类型为E的子元素
  • E:empty 没有子元素(包括text节点)的类型为E的元素
  • E:enabled
  • E:disabled 类型为E,允许或被禁止的用户界面元素
  • E:checked 类型为E,处于选中状态的用户界面元素(例如单选按钮或复选框)
  • E.warning 类型为E,且class属性值为warning
  • E#myid 类型为E,ID为 "myid"。(至多匹配一个元素)
  • E:not(s) 类型为E,不匹配选择器s
  • E F 在类型E后面的类型为F的元素
  • E > F 为E元素子元素的F元素
  • E + F an F element immediately preceded by an E element
  • E ~ F an F element preceded by an E element

不同之处

所有的属性选择器都被写成和XPath极其相似(因为所有的属性都以@符号开始)。

  • E[@foo] 拥有foo属性的E元素
  • E[@foo=bar] foo属性的值为bar的E元素
  • E[@foo^=bar] foo属性的值以字符串"bar"开始的E元素
  • E[@foo$=bar] foo属性的值以字符串"bar"结尾的E元素
  • E[@foo*=bar] foo属性的值包含有字符串"bar"结尾的E元素 

不支持的部分

  • E:link
  • E:visited an E element being the source anchor of a hyperlink of which the target is not yet visited (:link) or already visited (:visited)
  • E:active
  • E:hover
  • E:focus an E element during certain user actions
  • E:target an E element being the target of the referring URI
  • E::first-line the first formatted line of an E element
  • E::first-letter the first formatted letter of an E element
  • E::selection the portion of an E element that is currently selected/highlighted by the user
  • E::before generated content before an E element
  • E::after generated content after an E element

jQuery不支持下列的选择器,因为这些没什么用处。

  • E:nth-last-child(n) an E element, the n-th child of its parent, counting from the last one
  • E:nth-of-type(n) an E element, the n-th sibling of its type
  • E:nth-last-of-type(n) an E element, the n-th sibling of its type, counting from the last one
  • E:first-of-type an E element, first sibling of its type
  • E:last-of-type an E element, last sibling of its type
  • E:only-of-type an E element, only sibling of its type
  • E:lang(fr) an element of type E in language "fr"

XPath 查询器

XPath是jQuery内置支持的一种表达式语言。jQuery支持基本的XPath表达式。

定位路径

  • 绝对路径
    $("/html/body//p")
    $("/*/body//p")
    $("//p/../div")
  • 相对路径
    $("a",this) 
    $("p/a",this)
支持的Axis选择器
  • Descendant Element has a descendant element
 $("//div//p")
  • Child Element has a child element
 $("//div/p")
  • Preceding Sibling Element has an element before it, on the same axes
 $("//div ~ form")
  • Parent Selects the parent element of the element
 $("//div/../p")
支持的谓词
  • [@*] 拥有一个属性
    $("//div[@*]")
  • [@foo] 拥有foo属性
    $("//input[@checked]")
  • [@foo='test'] 属性foo值为'test'
    $("//a[@ref='nofollow']")
  • [Nodelist] Element contains a node list, for example: 
    $("//div[p]")
    $("//div[p/a]")

支持的谓词,但与XPath和CSS又不同的

  • [last()] or [position()=last()]改为:last
    $("p:last")
  • [0] or [position()=0] 改为 :eq(0) or :first
    $("p:first")
    $("p:eq(0)")
  • [position() < 5] 改为:lt(5)
    $("p:lt(5)")
  • [position() > 2] 改为:gt(2)
    $("p:gt(2)")

定制的选择器

jQuery包含一些在CSS和XPath都不用到的表达式,但我们觉得它们使用起来非常方便,所以包含进来了。

下列的列表式语法基于不同的CSS选择器,但又有非常相似的名字。

  • :even 从匹配的元素集中取序数为偶数的元素
  • :odd 从匹配的元素集中取序数为奇数的元素
  • :eq(0) and :nth(0) 从匹配的元素集中取第0个元素
  • :gt(4) 从匹配的元素集中取序数大于N的元素
  • :lt(4) 从匹配的元素集中取序数小于N的元素
  • :first 相当于 :eq(0)
  • :last 最后一个匹配的元素
  • :parent 选择包含子元素(包含text节点)的所有元素
  • :contains('test') 选择所有含有指定文本的元素
  • :visible 选择所有可见的元素(display值为block 或者visible 、visibility 值为visible的元素,不包括hide域)
  • :hidden 选择所有隐藏的元素(非Hide域,且display值为block 或者visible 、visibility 值为visible的元素)

例:

 $("p:first").css("fontWeight","bold");
$("div:hidden").show();
$("div:contains('test')").hide();

表单选择器
这是为表单提供的一些选择器:

  • :input 选择表单元素(input, select, textarea, button)
  • :text 选择所有文本域(type="text")
  • :password 选择所有密码域(type="password").
  • :radio 选择所有单选按钮(type="radio").
  • :checkbox 选择所有复选框(type="checkbox").
  • :submit 选择所有提交按钮(type="submit").
  • :image 选择所有图像域 (type="image").
  • :reset 选择所有清除域(type="reset").
  • :button 选择所有按钮(type="button").

同样也可以使用:hidden,详细说明上面已经介绍过。

$('#myForm :input')

如果你需要指定表单:

$('input:radio', myForm)

这将选择myForm表单中所有单选按钮。选择radio通常是用[@type=radio],但是这样用理精简些。

更多的选择器

jQuery选择器可以用一些第三方部件进行扩充:

分享到:
评论

相关推荐

    jquery.selector-px.js

    jquery.selector-px.js 在微信端实现苹果的下拉框的选取

    基于jQuery Selector.js插件实现的联动下拉框表单美化效果源码.zip

    jQuery的核心库已经包含了许多强大的选择器,如ID选择器 (#id)、类选择器 (.class) 和元素选择器 (tagname),但Selector.js插件进一步增强了这些功能,使开发者能够更高效地选取DOM元素,实现更加复杂的页面交互。...

    jquery.selector

    微信端实现选项滚动,模拟苹果下拉滚动的效果。参考地址

    Selector一个用于替换jQuery的微型JavaScript库

    Selector是一个微型JavaScript库,设计目的是为了替代广泛使用的jQuery库。jQuery以其强大的DOM操作、事件处理、动画效果和Ajax功能在Web开发中占据了重要的位置。然而,随着浏览器原生API的不断改进,许多jQuery的...

    jquery 仿模态对话框插件

    jquery selector: 以 content 指定的 jquery selector 筛选出第一个 jquery 对象的 HTML 文本. c. url: 以 iframe 加载 content 页面内容. 调用例子: $.modalbox.show({ modal: true, // 模态 contentType: ...

    jQuery1.12.4+jQuery中文手册.rar

    6. **链式操作**:jQuery的所有方法都会返回jQuery对象,这使得我们可以连续调用多个方法,如`$(selector).css("color", "red").fadeIn(500)`。 **学习与应用** - 开发时,可利用未压缩的`jquery-1.12.4.js`进行...

    web-data-extractor:使用jQuery Selector,XPath或JsonPath从常见的Web格式(例如HTML,XML和JSON)提取和解析结构化数据

    网络数据提取器 使用Jquery Selector,XPath或JsonPath从常见的Web格式(例如HTML,XML和JSON)提取和解析结构化数据。 实施: jQuery选择器和 XPath- JsonPath- 用法要使用Maven添加对Web-Data-Extractor的依赖关系...

    jquery.selector-cache:通过缓存选择器来加速jQuery代码

    jquery.selector-cache 通过缓存选择器来加速jQuery代码安装使用凉亭: bower install jquery.selector-cache用法在jQuery之后添加jquery.selector-cache.js即可。浏览器支持该优化将在起作用。 在任何其他浏览器中...

    jquery-3.5.1.rar

    2. 事件处理:jQuery统一了事件处理的方式,如 `$(selector).click(function(){...})` 用于绑定点击事件,`$(selector).on('mouseover', function(){...})` 用于绑定鼠标悬停事件。 3. 动画效果:jQuery的动画功能...

    jQuery基础自学笔记(pink老师jQuery全内容)

    《jQuery基础自学笔记》 jQuery 是一款非常流行的 JavaScript 库,由 John Resig 在2006年创建,它的出现极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。jQuery 的设计理念是“Write Less, Do ...

    jquery-3.0.0.js 、jquery-3.0.0.min.js 【官方jquery包 js】

    1. DOM操作:jQuery提供了一系列简便的方法,如`$(selector).html()`, `$(selector).append()`, `$(selector).remove()`等,使得DOM元素的选择、添加和删除变得简单易行。 2. 事件处理:`.on()`, `.off()`, `.click...

    jquery-2.1.1.js 、jquery-2.1.1.min.js 【jquery包 js】

    3. **事件处理**:jQuery简化了事件绑定和解绑,`$(selector).on('click', function() {...})`用于监听点击事件,`$(selector).off('click')`则移除该事件。 4. **动画效果**:`fadeIn()`, `slideUp()`, `animate()...

    jquery手册(jquery.cuishifeng.cn网页版)2

    2. **DOM操作**: jQuery提供了简便的方法来操作DOM,如`$(selector).append()`用于在选定元素后面添加内容,`$(selector).remove()`删除匹配的元素,`$(selector).clone()`复制元素。 3. **事件处理**: 使用`.on()`...

    jQuery Country Selector:jQuery插件:国家选择器-开源

    《jQuery Country Selector:一款高效的国家选择插件》 在当今全球化日益加速的时代,网页应用往往需要集成国家选择功能,以满足不同用户的需求。jQuery Country Selector 正是这样一款专为前端开发者设计的开源...

    jQuery颜色选择器ColorPicker

    **jQuery颜色选择器ColorPicker详解** 在Web开发中,用户界面的交互性和视觉效果往往对用户体验有着重要影响。其中,颜色选择器是一个常见的组件,它允许用户方便地选取颜色。`jQuery ColorPicker`是一个轻量级且...

    50个Jquery经典实例 50个Jquery经典实例

    3. **事件处理**:jQuery的事件绑定方法如`$(selector).click(fn)`、`$(selector).mouseover(fn)`,以及事件委托`$(parent).on('event', 'selector', fn)`,使得事件处理更加简洁。 4. **动画效果**:`fadeIn()`, `...

    jquery-1.8.3.js 、jquery-1.8.3.min.js 【官方jquery包 js】

    在DOM操作方面,jQuery提供了丰富的API,如`$(selector).html()`用于修改元素的HTML内容,`$(selector).append()`和`.prepend()`用于在元素内部添加内容。事件处理则通过`$(selector).on('event', handler)`进行,...

    jquery API -jQueryAPI-100214.chm

    jQuery 动画功能强大,$(selector).fadeIn() 和 $(selector).fadeOut() 分别实现淡入淡出效果,$(selector).slideToggle() 则实现滑动切换。$.animate() 方法可以自定义复杂的动画效果,通过指定CSS属性的变化来创建...

    jQuery基础教程 (Learning jQuery) 完整源代码

    4. **动画效果**:jQuery的动画功能非常强大,`$(selector).fadeIn()`淡入效果,`$(selector).slideUp()`滑动隐藏,`$(selector).animate()`允许自定义动画效果。 5. **Ajax**:jQuery提供了`.ajax()`方法实现异步...

Global site tag (gtag.js) - Google Analytics