强大的Jquery对象选择器

(1) 基本选择器:通过元素id,class和标签名等来查找Dom元素

  1)$("#id") 根据给定的ID匹配一个元素,返回单个元素  $("#name")选取Id为test的元素

   2)$(".class") 根据给定的类名匹配元素 返回集合元素  $(".class")选取所有class为class的元素

  3)$("element") 根据给定的元素名匹配元素,返回集合元素  $("input")选取所有的input元素

  4)$("*") 匹配所有的元素,返回集合元素,$("*")选取所有的元素

  5)$("selector1,selector2,...,selectorN") 将每一个选择器匹配到的元素合并后返回集合元素, $("div,span,p.myClass")选取所有<div>,<span>和拥有class为myClass的<p>标签的一组元素

  (2)层次选择器:如果想通过Dom元素之间的层次关系来获取特定元素,例如后代元素,子元素,相邻元素和同辈元素

  1)$("ancestor descendant") 获得ancestor元素里面的所有descendant(后代)元素,$("div span")选取<div>里的所有的<span>元素

  2)$("parent>child") 选取parent元素下的child(子)元素,返回集合元素 $("div span")选取<div>元素下元素名为<span>的子元素

   注解:和$("ancestor descendant")有区别,$("ancestor descendant")选择的是后代元素

   3)$("prev+next") 选取紧接在prev元素后的next元素,返回集合元素,$(".one+div")选取class为one的下一个<div>同辈元素

  4)$("prev~siblings") 选取prev元素之后的所有siblings元素,$("#two~div")选取Id为two的元素后面的所有<div>同辈元素

  注解:可以使用next()方法来替代$(‘prev+next‘)选择器  $(".one").next("div");可以使用nextAll()方法来替代$("prev~siblings")选择器 $("#two").nextAll(div)

  (3)过滤选择器:主要通过特定的过滤规则来筛选出所需要的Dom元素,按照不同的过滤规则,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选择器

  1)基本过滤选择器

   1)$(":first") 选取第一个元素,$("div:first")选取所有<div>元素中第一个<div>元素。

    2)$(":last")选取最后一个元素,$("div:last")选取所有<div>元素中最后一个<div>元素。

  3)$(":not(selector)")去除所有与给定选择器匹配的元素,$("input:not(.myClass)")选取class不是myClass的<input>元素。

   4)$(":even")选取索引是偶数的所有元素,索引从0开始,$("input:even")选取索引是偶数的<input>元素

    5)$(":odd")选取索引是奇数的所有元素,索引从0开始,$("input:odd")选取索引是奇数的<input>元素

    6)$(":eq(index)")选取索引等于index的元素,(index从0开始),$("input:eq(1)")选取索引等于1的<input>元素

  7)$(":gt(index)")选取索引大于index的元素,(index从0开始),$("input:gt(1)")选取索引大于1的<input>元素(大于1,而不包括1)

   8)$(":lt(index)")选取索引小于index的元素,(index从0开始),$("input:lt(1)")选取索引小于1的<input>元素(小于1,而不包括1)

    9)$(":header")选取所有的标题元素,例如:h1,h2,h3等等,$(":header")选取网页中的所有的<h1>,<h2>,<h3>...

   10)$(":animated")选取当前正在执行动画的所有元素,$("div:animated")选取正在执行动画的<div>元素。

   11)$(":focus")选取当前获取焦点的元素,$(":focus")选取当前获取焦点的元素

  2)内容过滤选择器:主要体现在它所包含的子元素或者文本内容上面

     1)$(":contains(text)")选取含有文本为"text"的元素,$("div:contains(‘我‘)")选取含有文本"我"的<div>元素

    2)$(":empty")选取不包含子元素或者文本的空元素,$("div:empty")选取不包含子元素(包括文本元素)的<div>空元素

    3)$(":has(selector)")选取含有选择器所匹配的元素的元素,$("div:has(p)")选取含有<p>元素的<div>元素

   4)$(":parent")选取含有子元素或者文本的元素,$("div:parent")选取拥有子元素(包括文本元素)的<div>元素

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

   1)$(":hidden")选取所有不可见的元素,$(":hidden")选取所有不可见的元素,包括<input type="hidden" />,

   <div style="display:none;">和<div style="visibility:hidden;">等元素。如果只想选取<input>元素,可以使用$("input:hidden")

   2)$(":visible")选取所有可见的元素,$("div:visible")选取所有可见的<div>元素

  4)属性过滤选择器:通过元素的属性来获取相应的元素

   1)$("[attribute]")选取拥有此属性的元素,$("div[id]")选取拥有属性Id的<idv>元素。

   2)$("[attribute=value]")选取属性的值为value的元素,$("div[title=test]")选取属性title为"test"的<div>元素

   3)$("[attribute!=value]")选取属性的值不等于value的元素,$("div[title!=test]")选取属性title不等于"test"的<div>元素(注意:没有属性title的<div>元素也会被选取)

  4)$("[attribute^=value]")选取属性的直以value开始的元素,$("div[title^=test]")选取属性title以"test"开始的<div>元素

  5)$("[attribute$=value]")选取属性的值以value结束的元素,$("div[title$=test]")选取属性title以"test"结束的<div>元素

    6)$("[attribute*=value]")选取属性的值含有value的元素,$("div[title*=test]")选取属性title含有"test"的<div>元素

    7)$("[attribute|=value]")选取属性等于给定字符串或以给字符串为前缀(该字符串后跟一个连字符"-")的元素,$("div[title|="en"]")选取属性title等于en或者以en为前缀(给字符串后跟一个"-")的元素

   8)$("[attribute~=value]")选取属性用空格分隔的值中包含一个给定值得元素,$("div[title~=‘uk‘]")选取属性title用空格分隔的值中包含字符uk的元素

  9)$("[attribute1][attribute2][attribute3]")用属性选择器合并成一个复合属性选择器,满足多个条件,每选择一次,缩小一次范围

  $("div[id][title$=‘test‘]")选取拥有属性id,并且属性title以"test"结束的<div>元素

  5)子元素过滤选择器

   注解:子元素过滤选择器的过滤规则相对于其他的选择器稍微有些复杂,只要将元素的父元素和子元素区分清楚,使用起来还是相当简单的

     1)$(":nth-child(idenx/even/odd/equation)")选取每个父元素下的第index个子元素或者奇偶元素(idnex从1算起)

   :eq(index)只匹配一个元素,而:nth-child将为每一个父元素匹配子元素,并且:nth-child(index)的index是从1开始的,

    而:eq(index)是从0开始的

    2)$(":first-child")选取每个父元素的第一个子元素,:first只返回单个元素,而:first-child选择符将为每个父元素匹配第一个

     子元素,例如:$("ul li:first-child");选取每个<ul>中的一个<li>元素

   3)$(":last-child")选取每个父元素的最后一个子元素,和上面一样,:last只返回当个元素,而:last-child选择符将为每个符永

元素匹配最后一个子元素,例如:$("ul li:first-child");选取每个<ul>中的最后一个<li>元素。

   4)$(":only-child")如果某个元素是它父元素中唯一的子元素,那么将会被匹配,如果父元素中含有其他元素,这不会被匹配

     $("ul li:only-child")在<ul>中选取是唯一子元素的<li>元素

    5):nth-child()选择器是很常用的子元素过滤器,详细功能如下:

    1)$(:nth-child(even))能选取每个父元素下的索引值是偶数的元素

  2)$(:nth-child(odd))能选取到每个父元素下的索引值是奇数的元素

   3)$(:nth-child(2))能选取到每个父元素下索引值等于2的元素

    4)$(:nth-child(3n))能选取到每个父元素下索引值是3的倍数的元素(n从1开始)

   5)$(:nth-child(3n+1))能选取每个父元素下索引值是(3n+1)的元素(n从1开始)

   6)表单对象过滤选择器:对所选择的表单进行过滤

    1)$(:enabled)选取所有可用元素,$("#form :enabled");选取id为"form"的表单内的所有可用元素

  2)$(:disabled)选取所有不可用的元素,$("#form :enabled");选取id为"form"的表单内的所有不可用元素

  3)$(:checked)选取所有被选中的元素(单选框,复选框),$("input:checked")选取所有被选中的<input>元素

  4)$(:selected)选取所有被选中的选项元素(下拉列表),$("select option:selected")选取所有被选中的选项元素

  (4)表单选择器:方便的获取到表单的某个或者某类型的元素

  1)$(":input")选取所有的<input>,<textarea>,<select>,<button>元素

  2)$(":text")选取所有的单行文本框

  3)$(":password")选取所有的密码框

   4)$(":radio")选取所有的单选框

   5)$(":checkbox")选取所有的多选框

   6)$(":submit")选取所有的提交按钮

  7)$(":image")选取所有的图像按钮

  8)$(":reset")选取所有的重置按钮

  9)$(":button")选取所有的按钮

  10)$(":file")选取所有的上传域

  11)$(":hidden")选取所有的不可见元素

选择器中的一些注意事项:

  (1) 选择器中含有特殊符号的注意事项

   1)选择器中含有".","、","#","(","]"等特殊字符

   根据w3c的规定,属性中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有"#","."等特殊字符,如果按照普通的方式去处理的话可能会出现错误,解决此类错误是使用转义符转义

例如:<div id="id#b">韩迎龙</div><div id="id[1]">韩迎龙</div>,这时的取法是这样的 $("#id\\#b"),$("#id\\[1\\]")

   2)属性选择器的@符号问题

   在Jquery升级版本的过程中,jquery在1.3.1版本中彻底放弃了1.1.0版本遗留下来的@符号,加入你使用的是1.3.1以上的版本,

  那么你不需要再属性前添加@符号,例如:

    $("div[@title=‘test‘]"),正确的写法就是去掉@符号,$(div[title=‘test‘])

  (2)选择器中含有空格的注意事项

  选择器中的空格是不容忽视的,多一个空格或者少一个空格也许会得到截然不同的结果

试验过的选择器:

$("#myELement")    选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素

$("div")           选择所有的div标签元素,返回div元素数组

$(".myClass")      选择使用myClass类的css的所有元素

$("*")             选择文档中的所有的元素,可以运用多种的选择方式进行联合选择:例如$("#myELement,div,.myclass")

层叠选择器:

$("form input")         选择所有的form元素中的input元素

$("#main > *")          选择id值为main的所有的子元素

$("label + input")     选择所有的label元素的下一个input元素节点,经测试选择器返回的是label标签后面直接跟一个input标签的所有input标签元素

$("#prev ~ div")       同胞选择器,该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签

基本过滤选择器:

$("tr:first")               选择所有tr元素的第一个

$("tr:last")                选择所有tr元素的最后一个

$("input:not(:checked) + span")

过滤掉:checked的选择器的所有的input元素

$("tr:even")               选择所有的tr元素的第0,2,4... ...个元素(注意:因为所选择的多个元素时为数组,所以序号是从0开始)

$("tr:odd")                选择所有的tr元素的第1,3,5... ...个元素

$("td:eq(2)")             选择所有的td元素中序号为2的那个td元素

$("td:gt(4)")             选择td元素中序号大于4的所有td元素

$("td:ll(4)")              选择td元素中序号小于4的所有的td元素

$(":header")

$("div:animated")

内容过滤选择器:

$("div:contains(‘John‘)") 选择所有div中含有John文本的元素

$("td:empty")           选择所有的为空(也不包括文本节点)的td元素的数组

$("div:has(p)")        选择所有含有p标签的div元素

$("td:parent")          选择所有的以td为父节点的元素数组

可视化过滤选择器:

$("div:hidden")        选择所有的被hidden的div元素

$("div:visible")        选择所有的可视化的div元素

属性过滤选择器:

$("div[id]")              选择所有含有id属性的div元素

$("input[name=‘newsletter‘]")    选择所有的name属性等于‘newsletter‘的input元素

$("input[name!=‘newsletter‘]") 选择所有的name属性不等于‘newsletter‘的input元素

$("input[name^=‘news‘]")         选择所有的name属性以‘news‘开头的input元素

$("input[name$=‘news‘]")         选择所有的name属性以‘news‘结尾的input元素

$("input[name*=‘man‘]")          选择所有的name属性包含‘news‘的input元素

$("input[id][name$=‘man‘]")    可以使用多个属性进行联合选择,该选择器是得到所有的含有id属性并且那么属性以man结尾的元素

子元素过滤选择器:

$("ul li:nth-child(2)"),$("ul li:nth-child(odd)"),$("ul li:nth-child(3n + 1)")

$("div span:first-child")          返回所有的div元素的第一个子节点的数组

$("div span:last-child")           返回所有的div元素的最后一个节点的数组

$("div button:only-child")       返回所有的div中只有唯一一个子节点的所有子节点的数组

表单元素选择器:

$(":input")                  选择所有的表单输入元素,包括input, textarea, select 和 button

$(":text")                     选择所有的text input元素

$(":password")           选择所有的password input元素

$(":radio")                   选择所有的radio input元素

$(":checkbox")            选择所有的checkbox input元素

$(":submit")               选择所有的submit input元素

$(":image")                 选择所有的image input元素

$(":reset")                   选择所有的reset input元素

$(":button")                选择所有的button input元素

$(":file")                     选择所有的file input元素

$(":hidden")               选择所有类型为hidden的input元素或表单的隐藏域

表单元素过滤选择器:

$(":enabled")             选择所有的可操作的表单元素

$(":disabled")            选择所有的不可操作的表单元素

$(":checked")            选择所有的被checked的表单元素

$("select option:selected") 选择所有的select 的子元素中被selected的元素

$(”input[@ name =S_03_22]“).parent().prev().text() 选取一个 name 为”S_03_22″的input text框的上一个td的text值

$(”input[@ name ^=‘S_‘]“).not(”[@ name $=‘_R‘]“) 名字以”S_”开始,并且不是以”_R”结尾的

$(”input[@ name =radio_01][@checked]“).val(); 一个名为 radio_01的radio所选的值

$("A B") 查找A元素下面的所有子节点,包括非直接子节点

$("A>B") 查找A元素下面的直接子节点

$("A+B") 查找A元素后面的兄弟节点,包括非直接子节点

$("A~B") 查找A元素后面的兄弟节点,不包括非直接子节点

1. $("A B") 查找A元素下面的所有子节点,包括非直接子节点

例子:找到表单中所有的 input 元素

HTML 代码:

<form>

<label>Name:</label>

<input name="name" />

<fieldset>

<label>Newsletter:</label>

<input name="newsletter" />

</fieldset>

</form>

<input name="none" />

jQuery 代码:

$("form input")

结果:

[ <input name="name" />, <input name="newsletter" /> ]

2. $("A>B") 查找A元素下面的直接子节点

例子:匹配表单中所有的子级input元素。

HTML 代码:

<form>

<label>Name:</label>

<input name="name" />

<fieldset>

<label>Newsletter:</label>

<input name="newsletter" />

</fieldset>

</form>

<input name="none" />

jQuery 代码:

$("form > input")

结果:

[ <input name="name" /> ]

3. $("A+B") 查找A元素后面的兄弟节点,包括非直接子节点

例子:匹配所有跟在 label 后面的 input 元素

HTML 代码:

<form>

<label>Name:</label>

<input name="name" />

<fieldset>

<label>Newsletter:</label>

<input name="newsletter" />

</fieldset>

</form>

<input name="none" />

jQuery 代码:

$("label + input")

结果:

[ <input name="name" />, <input name="newsletter" /> ]

4. $("A~B") 查找A元素后面的兄弟节点,不包括非直接子节点

例子:找到所有与表单同辈的 input 元素

HTML 代码:

<form>

<label>Name:</label>

<input name="name" />

<fieldset>

<label>Newsletter:</label>

<input name="newsletter" />

</fieldset>

</form>

<input name="none" />

jQuery 代码:

$("form ~ input")

结果:

[ <input name="none" /> ]

时间: 2024-11-06 12:07:05

强大的Jquery对象选择器的相关文章

什么是jquery $ jQuery对象和DOM对象 和一些选择器

1什么是jQuery: jQuery就是将一些方法封装在一个js文件中.就是个js库 我们学习这些方法. 2为什么要学习jQuery: 原生js有以下问题: 1.兼容性问题2.代码重复3.DOM提供的方法名太长,难记4.代码容错性较差5.入口函数只能有一个,如果出现多个,后面的会把前面的覆盖掉 3 jQuery版本介绍: 大版本 : 1 2 3 1 兼容ie6.7.8 2 3 不兼容 小版本: 压缩版(生产环境中用) 没有注释 没有换行 没有空格 变量名 都是 a b c d 这种模式 体积特别

[ jquery 过滤器 is(expr | jqObj | ele | function) ] 此方法用于在选择器的基础之上根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果有,则返回true

根据选择器.DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true. 如果没有元素符合,或者表达式无效,都返回'false'. '''注意:'''在jQuery 1.3中才对所有表达式提供了支持.在先前版本中,如果提供了复杂的表达式,比如层级选择器(比如 + , ~ 和 > ),始终会返回true 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title&

jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法

1 jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 2 3 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 4 $("div") 选择所有的div标签元素,返回div元素数组 5 $(".myClass") 选择使用myClass类的css的所有元素 6 $("*") 选择文档中的所有的元素,可

三,遍历方法 1$.each(数组/对象,function处理); //$对象 调用的 2$(选择器).each(function处理); //jquery对象 调用的

1$.each(数组/对象,function处理);  //$对象 2$(选择器).each(function处理);   //jquery对象

[ jquery 选择器 :even ] 此方法选取指定jquery对象中的偶数对象

此方法选取指定jquery对象中的偶数对象: 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,keyword2,k

.is() 检查当前的配套与选择器,jQuery对象的元素,或返回TRUE如果在这些元素的至少一个匹配给定的参数。

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>is demo</title> <style> div { width: 60px; height: 60px; margin: 5px; float: left; border: 4px outset; background: green; t

[ jquery 选择器 :last ] 此方法选取jquery对象中的最后一个对象

此方法选取jquery对象中的最后一个对象,与:first相对 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,k

一步一步学习 JQuery (一) JQuery 对象

jQuery 是继 Prototype 之后又一个优秀的 JavaScript 库 jQuery 理念: 写得少, 做得多. 优势如下: 轻量级 强大的选择器 出色的 DOM 操作的封装 可靠的事件处理机制 完善的 Ajax 出色的浏览器兼容性 链式操作方式 JQuery:Hello World <html> <head> <meta charset="UTF-8"> <title>Insert title here</title&

谜一样的jquery之$选择器

jquery是一个强大的js类库,提供了很多便利的操作方法并兼容不同的浏览器,一旦使用便欲罢不能,根本停不下来,今天我们就来解读一下这个神秘的jquery源代码. 前几天思考再三,自己尝试着封装了一下jquery的$选择器,然而并不完善,我只对id,class,和标签选择器进行了封装,发现其实如果实现浅层的封装那么我们很容易就能够实现,但是一旦我们尝试着选择器的层次嵌套就会出来很多大大小小的坑! 下面我们先来看一下我个人封装的jquery的选择器部分. window.$ = function (