jquery选择器

1.常用基础选择器

1.1.1  #id

 概述:

  根据给定的ID匹配一个元素。

  如果选择器中包含特殊字符,可以用两个斜杠转义。参见示例。

  参数:

  用于搜索的,通过元素的 id 属性中给定的值

示例:

  查找 ID 为"myDiv"的元素。

HTML 代码:
<div id="notMe"><p>id="notMe"</p></div>
<div id="myDiv">id="myDiv"</div>
jQuery 代码:
$("#myDiv");
结果:
[ <div id="myDiv">id="myDiv"</div> ]

  

1.1.2  element

 概述:

  根据给定的元素名匹配所有元素

 参数: 

  一个用于搜索的元素。指向 DOM 节点的标签名。查找一个 DIV 元素。

示例:

查找 ID 为"myDiv"的元素。

HTML 代码:
<div>DIV1</div>
<div>DIV2</div>
<span>SPAN</span>
jQuery 代码:
$("div");
结果:
[ <div>DIV1</div>, <div>DIV2</div> ]

  

1.1.3  .class

 概述:

  根据给定的类匹配元素

 参数: 

  一个用以搜索的类。一个元素可以有多个类,只要有一个符合就能被匹配到。

示例:

 查找所有类是 "myClass" 的元素.

HTML 代码:
<div class="notMe">div class="notMe"</div>
<div class="myClass">div class="myClass"</div>
<span class="myClass">span class="myClass"</span>
jQuery 代码:
$(".myClass");
结果:
[ <div class="myClass">div class="myClass"</div>, <span class="myClass">span class="myClass"</span> ]

  

 

1.1.4  *

 概述:

  匹配所有元素

  多用于结合上下文来搜索。

 参数: 

  一个用以搜索的类。一个元素可以有多个类,只要有一个符合就能被匹配到。

示例:

 查找所有类是 "myClass" 的元素.

描述:找到每一个元素

HTML 代码:
<div>DIV</div>
<span>SPAN</span>
<p>P</p>
jQuery 代码:
$("*")
结果:
[ <div>DIV</div>, <span>SPAN</span>, <p>P</p> ]

  

1.1.5  selector1,selector2,selectorN

 概述:

  将每一个选择器匹配到的元素合并后一起返回。

  你可以指定任意多个选择器,并将匹配到的元素合并到一个结果内。

 参数: 

  一个有效的选择器,另一个有效的选择器,任意多个有效选择器

示例:

   找到匹配任意一个类的元素。

HTML 代码:
<div>div</div>
<p class="myClass">p class="myClass"</p>
<span>span</span>
<p class="notMyClass">p class="notMyClass"</p>
jQuery 代码:
$("div,span,p.myClass")
结果:
[ <div>div</div>, <p class="myClass">p class="myClass"</p>, <span>span</span> ]

  

1.1.6  ancestor descendant

 概述:

  在给定的祖先元素下匹配所有的后代元素

 参数: 

  任何有效选择器,用以匹配元素的选择器,并且它是第一个选择器的后代元素

示例:

  找到表单中所有的 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" /> ]

 

1.1.7  parent > child

 概述:

   在给定的父元素下匹配所有的子元素

 参数: 

  任何有效选择器,用以匹配元素的选择器,并且它是第一个选择器的子元素

  示例:

   找到表单中所有的 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" /> ]

  

1.1.8  prev + next

 概述:

   匹配所有紧接在 prev 元素后的 next 元素

 参数: 

   任何有效选择器,一个有效选择器并且紧接着第一个选择器

  示例:

  匹配所有跟在 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" /> ]

  

1.1.9  prev ~ siblings

 概述:

  匹配 prev 元素之后的所有 siblings 元素

 参数: 

  任何有效选择器,一个选择器,并且它作为第一个选择器的同辈

  示例:

  找到所有与表单同辈的 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" /> ]

  

1.2.1. prev ~ siblings

 概述:

  匹配 prev 元素之后的所有 siblings 元素

 参数:

  任何有效选择器,一个选择器,并且它作为第一个选择器的同辈

  示例:

     找到所有与表单同辈的 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" /> ]

  

1.2.2. :first

 概述:

  获取第一个元素

  示例:

  获取匹配的第一个元素

HTML 代码:
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>
jQuery 代码:
$('li:first');
结果:
[ <li>list item 1</li> ]

  

1.2.3.  :last

 概述:

  获取最后个元素

  示例:

  获取匹配的最后个元素

HTML 代码:
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>
jQuery 代码:
$('li:last')
结果:
[ <li>list item 5</li> ]

 

1.2.4  :even

 概述:

  匹配所有索引值为偶数的元素,从 0 开始计数

  示例:

  查找表格的1、3、5...行(即索引值0、2、4...)

HTML 代码:
<table>
  <tr><td>Header 1</td></tr>
  <tr><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>
jQuery 代码:
$("tr:even")
结果:
[ <tr><td>Header 1</td></tr>, <tr><td>Value 2</td></tr> ]

 

1.2.5  :odd

 概述:

  匹配所有索引值为奇数的元素,从 0 开始计数

  示例:

  查找表格的2、4、6行(即索引值1、3、5...)

HTML 代码:
<table>
  <tr><td>Header 1</td></tr>
  <tr><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>
jQuery 代码:
$("tr:odd")
结果:
[ <tr><td>Value 1</td></tr> ]

  

1.2.6.  :not(selector)

 概述:

  去除所有与给定选择器匹配的元素

  在jQuery 1.3中,已经支持复杂选择器了(例如:not(div a) 和 :not(div,a))

 参数: 

  用于筛选的选择器

  示例:

  查找所有未选中的 input 元素

HTML 代码:
<input name="apple" />
<input name="flower" checked="checked" />
jQuery 代码:
$("input:not(:checked)")
结果:
[ <input name="apple" /> ]

  

1.2.7  :eq(index)

 概述:

   匹配一个给定索引值的元素

 参数: 

     从 0 开始计数

  示例:

    查找第二行

HTML 代码:
<table>
  <tr><td>Header 1</td></tr>
  <tr><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>
jQuery 代码:
$("tr:eq(1)")
结果:
[ <tr><td>Value 1</td></tr> ]

  

1.2.8  :gt(index)

 概述:    

  匹配所有大于给定索引值的元素

  参数: 从 0 开始计数

  示例:

  查找第二第三行,即索引值是1和2,也就是比0大

HTML 代码:
<table>
  <tr><td>Header 1</td></tr>
  <tr><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>
jQuery 代码:
$("tr:gt(0)")
结果:
[ <tr><td>Value 1</td></tr>, <tr><td>Value 2</td></tr> ]

  

1.2.9  :lt(index)

 概述:    

  匹配所有小于给定索引值的元素

    参数: 从 0 开始计数

  示例:

  查找第一第二行,即索引值是0和1,也就是比2小

HTML 代码:
<table>
  <tr><td>Header 1</td></tr>
  <tr><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>
jQuery 代码:
$("tr:lt(2)")
结果:
[ <tr><td>Header 1</td></tr>, <tr><td>Value 1</td></tr> ]

  

1.3.1  :header

 概述:    

  匹配如 h1, h2, h3之类的标题元素

  示例:

  给页面内所有标题加上背景色

HTML 代码:
<h1>Header 1</h1>
<p>Contents 1</p>
<h2>Header 2</h2>
<p>Contents 2</p>
jQuery 代码:
$(":header").css("background", "#EEE");
结果:
[ <h1 style="background:#EEE;">Header 1</h1>, <h2 style="background:#EEE;">Header 2</h2> ]

  

1.3.2  :animated

 概述:    

  匹配所有正在执行动画效果的元素

  示例:

  只有对不在执行动画效果的元素执行一个动画特效

HTML 代码:
<button id="run">Run</button><div></div>
jQuery 代码:
$("#run").click(function(){
  $("div:not(:animated)").animate({ left: "+=20" }, 1000);
});

  

1.3.3  :focus

 概述:    

  匹配当前获取焦点的元素。

  如同其他伪类选择器(那些以":"开始),建议:focus前面用标记名称或其他选择;否则,通用选择("*")是不言而喻的。

  换句话说,$(':focus')等同为$('*:focus')。如果你正在寻找当前的焦点元素,$( document.activeElement )将检索,而不必搜索整个DOM树。 

  示例:

  添加一个"focused"的类名给那些有focus方法的元素

HTML 代码:
<style>
.focused {
    background: #abcdef;
}

<style>

<div id="content">
    <input tabIndex="1">
    <input tabIndex="2">
    <select tabIndex="3">
        <option>select menu</option>
    </select>
    <div tabIndex="4">
        a div
    </div>
</div>
jQuery 代码:
$( "#content" ).delegate( "*", "focus blur", function( event ) {
    var elem = $( this );
    setTimeout(function() {
       elem.toggleClass( "focused", elem.is( ":focus" ) );
    }, 0);
});
 
 
 

1.3.4  :contains(text)

 概述:    

  匹配包含给定文本的元素

 参数: 

  一个用以查找的字符串

  示例:

  查找所有包含 "John" 的 div 元素

HTML 代码:
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn
jQuery 代码:
$("div:contains('John')")
结果:
[ <div>John Resig</div>, <div>Malcom John Sinclair</div> ]

  

1.3.5 :has(selector)

 概述:    

  匹配含有选择器所匹配的元素的元素

 参数: 

  一个用于筛选的选择器

  示例:

  给所有包含 p 元素的 div 元素添加一个 text 类

HTML 代码:
<div><p>Hello</p></div>
<div>Hello again!</div>
jQuery 代码:
$("div:has(p)").addClass("test");
结果:
[ <div class="test"><p>Hello</p></div> ]

  

1.3.6 :empty

 概述:    

  匹配所有不包含子元素或者文本的空元素

  示例:

  只有对不在执行动画效果的元素执行一个动画特效

HTML 代码:
<table>
  <tr><td>Value 1</td><td></td></tr>
  <tr><td>Value 2</td><td></td></tr>
</table>
jQuery 代码:
$("td:empty")
结果:
[ <td></td>, <td></td> ]

  

1.3.7 :parent

 概述:    

  匹配含有子元素或者文本的元素

  示例: 

  查找所有含有子元素或者文本的 td 元素

HTML 代码:
<table>
  <tr><td>Value 1</td><td></td></tr>
  <tr><td>Value 2</td><td></td></tr>
</table>
jQuery 代码:
$("td:parent")
结果:
[ <td>Value 1</td>, <td>Value 2</td> ]

  

1.3.8 :hidden

 概述:    

  匹配所有不可见元素,或者type为hidden的元素

  示例: 

  查找隐藏的 tr

HTML 代码:
<table>
  <tr style="display:none"><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>
jQuery 代码:
$("tr:hidden")
结果:
[ <tr style="display:none"><td>Value 1</td></tr> ]

 

示例: 

  匹配type为hidden的元素

HTML 代码:
<form>
  <input type="text" name="email" />
  <input type="hidden" name="id" />
</form>
jQuery 代码:
$("tr:hidden")
结果:
[ <input type="hidden" name="id" /> ]

 

1.3.9 :visible

 概述:    

  匹配所有的可见元素

  示例:   

  查找所有可见的 tr 元素

HTML 代码:
<table>
  <tr style="display:none"><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>
jQuery 代码:
$("tr:visible")
结果:
[ <tr><td>Value 2</td></tr> ]

 

1.4.1 :first-child

 概述:    

  匹配第一个子元素

  ':first' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素

  示例:   

  在每个 ul 中查找第一个 li

HTML 代码:
<ul>
  <li>John</li>
  <li>Karl</li>
  <li>Brandon</li>
</ul>
<ul>
  <li>Glen</li>
  <li>Tane</li>
  <li>Ralph</li>
</ul>
jQuery 代码:
$("ul li:first-child")
结果:
[ <li>John</li>, <li>Glen</li> ]

 

1.4.2 :last-child

 概述:    

  匹配最后一个子元素

  ':last'只匹配一个元素,而此选择符将为每个父元素匹配一个子元素

  示例:   

  在每个 ul 中查找最后一个 li

HTML 代码:
<ul>
  <li>John</li>
  <li>Karl</li>
  <li>Brandon</li>
</ul>
<ul>
  <li>Glen</li>
  <li>Tane</li>
  <li>Ralph</li>
</ul>
 
jQuery 代码:
$("ul li:last-child")
结果:
[ <li>Brandon</li>, <li>Ralph</li> ]

 

1.4.3 [selector1][selector2][selectorN]

 概述:    

  复合属性选择器,需要同时满足多个条件时使用。

   参数:

  属性选择器 ,另一个属性选择器,用以进一步缩小范围,  任意多个属性选择器

  示例:   

  找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的

HTML 代码:
<input id="man-news" name="man-news" />
<input name="milkman" />
<input id="letterman" name="new-letterman" />
<input name="newmilk" />
jQuery 代码:
$("input[id][name$='man']")
结果:
[ <input id="letterman" name="new-letterman" /> ]

 

1.4.4 [attribute]

 概述:    

   匹配包含给定属性的元素。注意,在jQuery 1.3中,前导的@符号已经被废除!如果想要兼容最新版本,只需要简单去掉@符号即可。

   参数:

   属性名

  示例:   

  查找所有含有 id 属性的 div 元素

HTML 代码:
<div>
  <p>Hello!</p>
</div>
<div id="test2"></div>
jQuery 代码:
$("div[id]")
结果:
[ <div id="test2"></div> ]

 

1.4.5 [attribute=value]

 概述:    

   匹配给定的属性是某个特定值的元素

   参数:

  属性名, 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。

  示例:   

  查找所有 name 属性是 newsletter 的 input 元素

HTML 代码:
<input type="checkbox" name="newsletter" value="Hot Fuzz" />
<input type="checkbox" name="newsletter" value="Cold Fusion" />
<input type="checkbox" name="accept" value="Evil Plans" />
jQuery 代码:
$("input[name='newsletter']").attr("checked", true);
结果:
[ <div id="test2"></div> ]

 

  本文章借鉴于jQuery官方文档1.8版本

 

posted @ 2019-09-21 10:43  忘忧野草  阅读(159)  评论(0编辑  收藏  举报