时光荏苒

你我的人生,如果有目标有景致,有进取心,有进退自如的余地,能够“由自己主宰”,就是好人生,就是体面的人生。

《锋利的jQuery》读书笔记 第二章 jQuery选择器

1、jQuery选择器的优势

    1.  简洁的写法。2.  支持CSS1到CSS3选择器。3.  完善的处理机制:用jQuery获取即使网页中不存在的元素也不会报错。需要注意的是:$("#tt")获取的永远是对象,即使网页上没有此元素。因此当要用jQuery检查某个元素是否存在时,不能使用  if($("#tt"))来判断 ,而是应该根据获取的元素的长度来判断:if($("#tt").length>0)或者转化为DOM对象来判断:if($("#tt")[0])。

2、基本选择器

  • #id          根据给定的id匹配一个元素   单个元素 $("#test")选取id为test的元素

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

  • element 根据给定的元素名匹配元素   集合元素 $("p")选取所有的<p>元素

  • *             匹配所有元素                        集合元素 $("*")选取所有的元素

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

3、层次选择器

  • $("ancestor descendant") 选取ancestor元素里的所有descendant(后代)元素  集合元素 $("div span")选取<div>里的所有的<span>

  • $("parent>child") 选取parent元素下的child(子)元素  集合元素  $("div>span")选取<div>元素下元素名是<span>的子元素

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

  • $("prev~siblings") 选取prev元素之后的所有同辈siblings元素 集合元素 $("#two~div")选取id为two的元素后面的所有<div>同辈元素。

注意:      $(".one + div") 与 $(".one").next("div");等价

                $("#prev~div") 与 $("#prev").nextAll("div")等价

注意:         $("prev~siblilngs")与$("prev").siblings()方法的区别:$("#prev~div")选择器只能选择“prev”元素后面的同辈<div>元素。而siblings()方法与前后位置无关,只要是同辈节点就都能匹配。

4、过滤选择器

(1)基本过滤选择器

  • :first  获取第一个元素  单个元素  $("div:first")选取所有<div>元素中第一个<div>元素

  • :last  获取最后一个元素  单个元素  $("div:last")选取所有<div>元素中最后一个<div>元素

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

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

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

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

  • :gt(index)  选取索引大于index的元素(index从0开始)  集合元素  $("input:gt(1)")选取索引值大于1的<input>元素

  • :lt(index)   选取索引小于index的元素(index从0开始)  集合元素  $("input:lt(1)")选取索引值小于1的<input>元素

  • :header  选取所有的标题元素,例如h1,h2,h3等等  集合元素  $(":header")选取网页中的h1、h2、h3等等

  • :animated  选取当前正在执行的动画的所有元素  集合元素  $("div:aniamted")选取正在执行动画的<div>元素

  • :focus  选取当前获取焦点的元素  集合元素  $(":focus")选取当前获取焦点的元素

(2)内容过滤选择器

  • contains(text)  选取含有文本内容为“text”的元素  集合元素  $("div:contains('我')")选取含有文本“我”的<div>元素

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

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

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

(3)可见性过滤选择器

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

  • :visible  选取所有可见的元素  集合元素  $("div:visible")选取所有可见的<div>元素

(4)属性过滤选择器

  • [arrtibute]  选取拥有此属性的元素  集合元素  $("div[id]")选取所有拥有id属性的元素

  • [arrtibute=value]  选取属性的值为value的元素  集合元素  $("div[title=test]")选取属性title为"test"的<div>元素

  • [arrtibute!=value]  选取属性的值不为value的元素  集合元素 $("div[title!=test]")选取属性title不等于“test”的<div>元素(没有title属性的<div>元素也会被获取)

  • [attribute^=value]  选取属性值以value开始的元素  集合元素  $("div^=test")选取属性title以“test”开始的<div>元素

  • [attribute$=value]  选取属性值以value结束的元素  集合元素  $("div^=test")选取属性title以“test”结束的<div>元素

  • [attribute*=value]  选取属性值含有value的元素  集合元素  $("div^=test")选取属性title含有“test”的<div>元素

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

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

  • [attribute1][attribute2]...[attributeN]  用属性选择器合并成一个复合属性选择器,满足多个条件。每选择一次,缩小一次范围  集合元素  $("div[id][title$='test']")选取拥有属性id,并且属性title以“test”结束的<div>元素

(5)子元素过滤选择器

  • :nth-child(index/even/odd/equation)  选取每个父元素下的第index个子元素或者奇偶元素。(index从1开始算)  集合元素  :eq(index)只匹配一个元素,而:th-child将为每一个父元素匹配子元素,并且:th-child(index)的index是从1开始的,而:eq(index)是从0算起的

  • :first-child  选取每个父元素的第一个子元素  集合元素  :first只返回单个元素,而:first-child选择符将为每个父元素匹配第一个子元素。$("ul li:first-child");选取每个<ul>中的第一个<li>元素

  • :last-child  选取每个父元素的最后一个子元素  集合元素  :last只返回单个元素  而:last-child选择符将为每一个父元素匹配最后一个子元素。 $("ul li:last-child");选取每个<ul>中的最后一个<li>元素

  • :only-child  如果某个元素是它父元素中唯一的子元素,那么将会被匹配。如果父元素中含有其他元素,则不会被匹配  集合元素  $("ul li:only-child")在<ul>中选取是唯一子元素的<li>元素

(6)表单对象属性过滤选择器

  • :enabled  选取所有可用元素  集合元素  $("form1:enabled");选取id为“form1”的表单内的所有可用元素

  • disabled  选取所有不可用元素  集合元素  $("form2:disabled"); 选取id为“form2”的表单内的所有不可用元素

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

  • :selected  选取所有被选中的选项元素(下拉列表)  集合元素  $("select option:sleected");选取所有被选中的选项元素

5、表单选择器

  • :input  选取所有的<input>、<textarea>、<select>、<button>元素  集合元素  $(":input")选取所有<input>、<textarea>、<select>、<button>元素

  • :text  选取所有的单行文本框  集合元素  $(":text")选取所有的单行文本框

  • :password  选取所有的密码框  集合元素  $(":password")选取所有的密码框

  • :radio  选取所有的单选框  集合元素  $(":radio")选取所有的单选框

  • :checkbox  选取所有的多选框  集合元素  $(":checkbox")选取所有的多选框

  • :submit  选取所有的提交按钮  集合元素  $(":submit")选取所有的提交按钮

  • :image  选取所有的图像按钮 集合元素 $(":image")选取所有的图像按钮

  • :reset  选取所有的重置按钮 集合元素 $(":reset")选取所有的重置按钮

  • :button 选取所有的按钮  集合元素  $(":button")选取所有的按钮

  • :file  选取所有的长传域  集合元素  $(":file")选取所有的长传域

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

6、选择器中的注意事项

        选择器中含有“#”、“【】”、“()”等特殊字符

        例如:<div id="id#b">bb</div>

         <div id="id[1]">cc</div>要用双反斜杠来转义:

         $("#id\\#b");

         $("#id\\[1\\]");



评论

热度(1)