jq选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> <script src="./js/jquery-3.1.0.min.js"></script> </head> <body> <!--1 #id 根据给定的ID匹配一个元素。 --> <div id="notMe">d="notMe"</div> <div id="myDiv">id="myDiv"</div> <script> $("#myDiv"); </script> <!--2 element 据给定的元素名匹配所有元素 --> <div>DIV1</div> <div>DIV2</div> <span>SPAN</span> <script> $("div"); </script> <!--3 .class 一个用以搜索的类。一个元素可以有多个类,只要有一个符合就能被匹配到。 --> <div class="notMe">div class="notMe"</div> <div class="myClass">div class="myClass"</div> <span class="myClass">span class="myClass"</span> <script> $(".myClass"); </script> <!--4 * 匹配所有元素 --> <div>DIV</div> <span>SPAN</span> <p>P</p> <script> $('*') </script> <!-- 5 selector1,selector2,selectorN 将每一个选择器匹配到的元素合并后一起返回。 --> <div>div</div> <p class="myClass">p class="myClass"</p> <span>span</span> <p class="notMyClass">p class="notMyClass"</p> <script> $("div,span,p.myClass") </script> <!--6 ancestor descendant 在给定的祖先元素下匹配所有的后代元素 --> <form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <input name="newsletter" /> </fieldset> </form> <input name="none" /> <script> $("form input") </script> <!-- 7 parent > child 在给定的父元素下匹配所有的子元素 --> <form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <input name="newsletter" /> </fieldset> </form> <input name="none" /> <script> $("form > input") </script> <!--8 prev + next 匹配所有紧接在 prev 元素后的 next 元素 --> <form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <input name="newsletter" /> </fieldset> </form> <input name="none" /> <script> $("label + input") </script> <!-- 9 prev ~ siblings 匹配 prev 元素之后的所有 siblings 元素 --> <form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <input name="newsletter" /> </fieldset> </form> <input name="none" /> <script> $("form ~ input") </script> <!-- 10 :first 获取第一个元素 --> <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> <script> $('li:first'); </script> <!-- 11 :last() 获取最后个元素 --> <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> <script> $('li:last') </script> <!-- 12 :not(selector) 去除所有与给定选择器匹配的元素 --> <input name="apple" /> <input name="flower" checked="checked" /> <script> $("input:not(:checked)") </script> <!-- 13 :even 匹配所有索引值为偶数的元素,从 0 开始计数 --> <table> <tr><td>Header 1</td></tr> <tr><td>Value 1</td></tr> <tr><td>Value 2</td></tr> </table> <script> $("tr:even") </script> <!-- 14 :odd 匹配所有索引值为奇数的元素,从 0 开始计数 --> <table> <tr><td>Header 1</td></tr> <tr><td>Value 1</td></tr> <tr><td>Value 2</td></tr> </table> <script> $("tr:odd") </script> <!-- 15 :eq(index) 匹配一个给定索引值的元素 --> <table> <tr><td>Header 1</td></tr> <tr><td>Value 1</td></tr> <tr><td>Value 2</td></tr> </table> <script> $("tr:eq(1)") </script> <!-- 16 :gt(index) 匹配所有大于给定索引值的元素 --> <table> <tr><td>Header 1</td></tr> <tr><td>Value 1</td></tr> <tr><td>Value 2</td></tr> </table> <script> $("tr:gt(0)") </script> <!-- 17 :lt(index) 匹配所有小于给定索引值的元素 --> <table> <tr><td>Header 1</td></tr> <tr><td>Value 1</td></tr> <tr><td>Value 2</td></tr> </table> <script> $("tr:lt(2)") </script> <!-- 18 :lang(language) 选择指定语言的所有元素。--> <!--:lang选择器匹配有一个语言值等于所提供的语言代码,或以提供的语言代码开始,后面马上跟一个“ - ”的元素。例如,选择器$("div:lang(en)")将匹配<div lang="en"> and <div lang="en-us">(和他们的后代<div>),但不包括<div lang="fr"> --> <!-- 选择所有<P> 的语言属性: --> $("p:lang(it)") <!-- 19 :header 匹配如 h1, h2, h3之类的标题元素 --> <h1>Header 1</h1> <p>Contents 1</p> <h2>Header 2</h2> <p>Contents 2</p> <script> $(":header").css("background", "#EEE"); </script> <!-- 20 :animated 匹配所有正在执行动画效果的元素 --> <button id="run">Run</button><div></div> <script> $("#run").click(function(){ $("div:not(:animated)").animate({ left: "+=20" }, 1000); }); </script> <!-- 21 :focus 匹配当前获取焦点的元素。--> <!-- 如同其他伪类选择器(那些以":"开始),建议:focus前面用标记名称或其他选择;否则,通用选择("*")是不言而喻的。换句话说,$(':focus')等同为$('*:focus')。如果你正在寻找当前的焦点元素,$( document.activeElement )将检索,而不必搜索整个DOM树。 --> <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> <script> $( "#content" ).delegate( "*", "focus blur", function( event ) { var elem = $( this ); setTimeout(function() { elem.toggleClass( "focused", elem.is( ":focus" ) ); }, 0); }); </script> <!-- 22 :root 选择该文档的根元素 --> <script> $(":root").css("background-color","yellow"); </script> <!-- 23 :target 选择由文档URI的格式化识别码表示的目标元素。 --> <script> $("p, button, h1, h2").click(function(event){ $("div").html("Triggered by a " + event.target.nodeName + " element."); }); </script> <!-- 24 :contains(text) 匹配包含给定文本的元素 --> <div>John Resig</div> <div>George Martin</div> <div>Malcom John Sinclair</div> <script> $("div:contains('John')") </script> <!-- 24 :empty 匹配所有不包含子元素或者文本的空元素 --> <table> <tr> <td>Value 1</td> <td></td> </tr> <tr> <td>Value 2</td> <td></td> </tr> </table> <script> $("td:empty") </script> <!-- 25 :has(selector) 匹配含有选择器所匹配的元素的元素 --> <div><p>Hello</p></div> <div>Hello again!</div> <script> $("div:has(p)").addClass("test"); </script> <!-- 26 :parent 匹配含有子元素或者文本的元素 --> <table> <tr> <td>Value 1</td> <td></td> </tr> <tr> <td>Value 2</td> <td></td> </tr> </table> <script> $("td:parent") </script> <!-- 27 :hidden 匹配所有不可见元素,或者type为hidden的元素--> <table> <tr style="display:none"> <td>Value 1</td> </tr> <tr> <td>Value 2</td> </tr> </table> <script> $("tr:hidden") </script> <!-- 28 :visible 匹配所有不可见元素 --> <table> <tr style="display:none"> <td>Value 1</td> </tr> <tr> <td>Value 2</td> </tr> </table> <script> $("tr:visible") </script> <!-- 29 [attribute] 匹配包含给定属性的元素。 注意, 在jQuery 1.3中,前导的@符号已经被废除!如果想要兼容最新版本,只需要简单去掉@符号即可。 --> <div> <p>Hello!</p> </div> <div id="test2"></div> <script> $("div[id]") </script> <!-- 30 [attribute=value] 匹配给定的属性是某个特定值的元素 --> <input type="checkbox" name="newsletter" value="Hot Fuzz" /> <input type="checkbox" name="newsletter" value="Cold Fusion" /> <input type="checkbox" name="accept" value="Evil Plans" /> <script> $("input[name='newsletter']").attr("checked", true); </script> <!-- 31 [attribute!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素。 --> <input type="checkbox" name="newsletter" value="Hot Fuzz" /> <input type="checkbox" name="newsletter" value="Cold Fusion" /> <input type="checkbox" name="accept" value="Evil Plans" /> <script> $("input[name!='newsletter']").attr("checked", true); </script> <!-- 32 [attribute^=value] 匹配给定的属性是以某些值开始的元素 --> <input name="newsletter" /> <input name="milkman" /> <input name="newsboy" /> <script> $("input[name^='news']") </script> <!-- 33 [attribute$=value] 匹配给定的属性是以某些值结尾的元素 --> <input name="newsletter" /> <input name="milkman" /> <input name="jobletter" /> <script> $("input[name$='letter']") </script> <!-- 34 [selector1][selector2][selectorN] 复合属性选择器,需要同时满足多个条件时使用 --> <input id="man-news" name="man-news" /> <input name="milkman" /> <input id="letterman" name="new-letterman" /> <input name="newmilk" /> <script> $("input[id][name$='man']") </script> <!-- 35 :first-child 匹配第一个子元素 --> <ul> <li>John</li> <li>Karl</li> <li>Brandon</li> </ul> <ul> <li>Glen</li> <li>Tane</li> <li>Ralph</li> </ul> <script> $("ul li:first-child") </script> <!-- 36 :first-of-type 选择所有相同的元素名称的第一个兄弟元素。 --> <div> <span>1</span> <span>2</span> <span>3</span> </div> <script> $("div:first-of-type") </script> <!-- 37 :last-child 匹配最后一个子元素 --> <ul> <li>John</li> <li>Karl</li> <li>Brandon</li> </ul> <ul> <li>Glen</li> <li>Tane</li> <li>Ralph</li> </ul> <script> $("ul li:last-child") </script> <!-- 38 :last-of-type 选择的所有元素之间具有相同元素名称的最后一个兄弟元素。 --> <p> <span>1</span> <span>2</span> <span>3</span> </p> <script> $("p:last-of-type") </script> <!-- 39 :nth-child 匹配其父元素下的第N个子或奇偶元素 --> <ul> <li>John</li> <li>Karl</li> <li>Brandon</li> </ul> <ul> <li>Glen</li> <li>Tane</li> <li>Ralph</li> </ul> <script> $("ul li:nth-child(2)") </script> <!-- 40 :nth-last-child(n|even|odd|formula)选择所有他们父元素的第n个子元素。计数从最后一个元素开始到第一个。 --> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul> <script> $("ul li:nth-last-child(2)"); </script> <!-- 41 :nth-last-of-type(n|even|odd|formula) 选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个。 --> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul> <script> $("ul li:nth-last-of-type(2)"); </script> <!-- 42 :nth-of-type(n|even|odd|formula) 选择同属于一个父元素之下,并且标签名相同的子元素中的第n个。 --> <div> <span>John</span> <b>Kim</b> <span>Adam</span> <b>Rafael</b> <span>Oleg</span> </div><div> <b>Dave</b> <span>Ann</span> </div> <div> <i><span>Maurice</span></i> <span>Richard</span> <span>Ralph</span> <span>Jason</span> </div> <script> $("span:nth-of-type(2)"); </script> <!-- 43 :only-child 如果某个元素是父元素中唯一的子元素,那将会被匹配 --> <ul> <li>John</li> <li>Karl</li> <li>Brandon</li> </ul> <ul> <li>Glen</li> </ul> <script> $("ul li:only-child") </script> <!-- 44 :only-of-type 选择所有没有兄弟元素,且具有相同的元素名称的元素。 --> <div> <button>Sibling!</button> <button>Sibling!</button> </div> <div> <button>Sibling!</button> </div><div> None</div> <div> <button>Sibling!</button> <span>Sibling!</span> <span>Sibling!</span> </div> <div> <button>Sibling!</button> </div> <script> $("button:only-of-type").text("Alone").css("border", "2px blue solid"); </script> <!-- 45 :input 匹配所有 input, textarea, select 和 button 元素 --> <form> <input type="button" value="Input Button"/> <input type="checkbox" /> <input type="file" /> <input type="hidden" /> <input type="image" /> <input type="password" /> <input type="radio" /> <input type="reset" /> <input type="submit" /> <input type="text" /> <select><option>Option</option></select> <textarea></textarea> <button>Button</button> </form> <script> $(":input") </script> <!-- 46 :text 匹配所有的单行文本框 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":text") </script> <!-- 47 :password 匹配所有密码框 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":password") </script> <!-- 48 :radio 匹配所有单选按钮 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":radio") </script> <!-- 50 :checkbox 匹配所有复选框 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":checkbox") </script> <!-- 51 :submit 匹配所有提交按钮 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":submit") </script> <!-- 52 :image 匹配所有图像域 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":image") </script> <!-- 53 :reset 匹配所有重置按钮 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":reset") </script> <!-- 54 :button 匹配所有按钮 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":button") </script> <!-- 55 :file 匹配所有文件域 --> <form> <input type="text" /> <input type="checkbox" /> <input type="radio" /> <input type="image" /> <input type="file" /> <input type="submit" /> <input type="reset" /> <input type="password" /> <input type="button" /> <select><option/></select> <textarea></textarea> <button></button> </form> <script> $(":file") </script> <!-- 556 :hidden 匹配所有不可见元素,或者type为hidden的元素 --> <form> <input type="text" name="email" /> <input type="hidden" name="id" /> </form> <script> $("input:hidden") </script> <!-- 57 :enabled 匹配所有可用元素 --> <form> <input name="email" disabled="disabled" /> <input name="id" /> </form> <script> $("input:enabled") </script> <!-- 58 :disabled 匹配所有不可用元素 --> <form> <input name="email" disabled="disabled" /> <input name="id" /> </form> <script> $("input:disabled") </script> <!-- 60 :checked 匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option) --> <form> <input type="checkbox" name="newsletter" checked="checked" value="Daily" /> <input type="checkbox" name="newsletter" value="Weekly" /> <input type="checkbox" name="newsletter" checked="checked" value="Monthly" /> </form> <script> $("input:checked") </script> <!-- 61 :selected 匹配所有选中的option元素 --> <select> <option value="1">Flowers</option> <option value="2" selected="selected">Gardens</option> <option value="3">Trees</option> </select> <script> $("select option:selected") </script> <!-- ps: 以上是基于手册的信息 不难发现有很多选择器的用法是一样的 --> </body> </html>