首页 > 代码库 > jQuery选择器全解-基础选择器
jQuery选择器全解-基础选择器
Id选择:
根据元素Id选择,$(“layer1”) 选择ID为layer1的元素
<div id="layer1" style="width: 300px;height: 300px;border: 1px solid red"></div>alert($("#layer1").height());
element
element选择器是一个用于搜索的元素。指向DOM节点的标签名
<a href=""></a><a href=""></a><a href=""></a>alert($("a").length);
.class选择器
.class选择器根据给定的类匹配元素,是一个用以搜索的类。一个元素可以有多个类,只要有一个符合就能被匹配到
<input type="text" id="ID" value="http://www.mamicode.com/根据ID选择" /><a>根据元素名称选择</a><input type="text" class="classname" value="http://www.mamicode.com/根据元素css类名选择" />alert($("#ID").val() + " " + $("a").text() + " " + $(".classname").val());
selector1,selector2,selectorN选择器
这类选择器选择器即将每一个选择器匹配到的元素合并后一起返回。你可以指定任意多个选择器,并将匹配到的元素合并到一个结果内
<h2 class="title">并集选择器 的h2</h2><dl> <dt>并集选择器</dt></dl><input type="button" value="http://www.mamicode.com/设置所有h2 dt class 为title 的背景颜色" id="4" /><br />$("#4").click(function (){ $("h2,dt,.title").css("background","pink");});
层级选择器
ancestor descendant选择器
其指在给定的祖先元素下匹配所有的后代元素,作为参数的ancestor代表任何有效的选择器,而descendant则用以匹配元素的选择器,并且它是第一个选择器的后代
<form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <input name="newsletter" /> </fieldset></form>alert($("form input").length)
parent>child选择器
parent>child选择器代表在给定的父元素下匹配所有的子元素。两个参数分别代表的意思如下:parent代表任何有效选择器;child用以匹配元素的选择器,并且它是第一个选择器的子元素。
<div id="n1"> <p id="n2" class="test"> <span id="n3" class="a">Hello</span> </p> <p id="n4" class="detail"> <span id="n5" class="b codeplayer">World <span id="n6" class="c">365mini.com</span> </span> </p></div>alert($("p > span ").length + " " + $("p > span > span").length);
prev+next选择器
这类选择器的作用是匹配所有紧接在prev元素后的next元素。两个参数分别代表的意思如下:prev代表任何有效选择器;next代表一个有效选择器并且紧接着第一个选择器。
<form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <input name="newsletter" /> </fieldset></form>alert($("label + input").length)
prev ~ siblings选择器
prev ~ siblings选择器代表匹配prev元素之后的所有siblings元素。两个参数分别代表的意思如下:prev代表任何有效选择器;siblings代表一个选择器,并且它作为第一个选择器的同辈。
<div id="divTest"> <input type="text" value="http://www.mamicode.com/投资" /> <input id="next" type="text" /> <input type="text" value="http://www.mamicode.com/担当" /> <input type="text" title="学习" value="http://www.mamicode.com/学习" /> <a>1</a> <a>2</a></div>alert(jQuery("#next~[title]").val());
jQuery选择器全解-基本过滤器
<div id="divTest"> <ul> <li>基本过滤选择器</li> <li>基本过滤选择器</li> <li>基本过滤选择器</li> <li>基本过滤选择器</li> <li>基本过滤选择器</li> <li>基本过滤选择器</li> <input type="radio" value="http://www.mamicode.com/学习" checked="checked" /> <input type="radio" value="http://www.mamicode.com/不学习" /> </ul></div><input type="button" value="http://www.mamicode.com/li_first" id="one"/><input type="button" value="http://www.mamicode.com/li_last" id="two"/><input type="button" value="http://www.mamicode.com/not(selector)" id="three"/><input type="button" value="http://www.mamicode.com/li_even" id="four"/><input type="button" value="http://www.mamicode.com/li_odd" id="five"/><input type="button" value="http://www.mamicode.com/li_eq(index)" id="six"/><input type="button" value="http://www.mamicode.com/li_gt(2)" id="seven"/><input type="button" value="http://www.mamicode.com/li_:lt(1)" id="leng"/>
first
匹配找到的第一个元素
$("#one").click(function (){ $("li:first").css("background","pink");});
last
匹配找到的最后一个元素
$("#two").click(function (){ $("li:last").css("background","pink");});
not(selector)
去除所有与给定选择器匹配的元素
$("#three").click(function (){alert($("input:not(:checked)").val())});
even
匹配所有索引值为偶数的元素,从 0 开始计数
$("#two").click(function (){ $("li:even").css("background","pink");});
odd
匹配所有索引值为奇数的元素,从 0 开始计数
$("#two").click(function (){ $("li:odd").css("background","pink");});
eq(index)
匹配一个给定索引值的元素 注:index从 0 开始计数
$("#two").click(function (){ $("li:eq(3)").css("background","pink");});
gt(index)
匹配所有大于给定索引值的元素 注:index从 0 开始计数
$("#two").click(function (){ $("li:gt(3)").css("background","pink");});
lt(index)
选择结果集中索引小于 N 的 elements 注:index从 0 开始计数
$("#two").click(function (){ $("li:lt(3)").css("background","pink");});
jQuery选择器全解-内容过滤器
<div id="divTest"> <ul> <li>hyip投资</li> <li>hyip</li> <li><a href=""></a></li> <li>内容过滤器</li> <li>hyip内容过滤器</li> </ul></div><input type="button" value="http://www.mamicode.com/li_contains(text)" id="one"/><input type="button" value="http://www.mamicode.com/li_empty+li" id="two"/><input type="button" value="http://www.mamicode.com/li_has(selector)" id="three"/>
contains(text)
匹配包含给定文本的元素
$("#one").click(function (){ $("li:contains(‘hyip‘)").css("background","pink");});
empty
匹配所有不包含子元素或者文本的空元素
$("#one").click(function (){ $("li:empty+li").css("background","pink");});
:has(selector)
匹配含有选择器所匹配的元素的元素
$("#one").click(function (){ $("li:has(a)").css("background","pink");});
可见性过滤器 Visibility Filters
<ul> <li>可见1</li> <li style="display:none;">不可见2</li> <li style="display:none;">不可见<3/li> <li>可见4</li></ul>
hidden
匹配自身或者父类在文档中不占用空间的元素.如果使用CSS visibility属性让其不显示但是占位,则不输入hidden
$("#one").click(function (){ alert($("li:hidden").length); });
visible
匹配所有的可见元素
$("#one").click(function (){ alert($("li:visible").length); });
jQuery选择器全解-属性过滤器
<input type="text" id="yi" name="hyipinvest" value="http://www.mamicode.com/hyip投资" /><input type="text" name="investhyip" value="http://www.mamicode.com/投资hyip" /><input type="text" name="google" value="http://www.mamicode.com/HYIP" /><button id="one">点击</button>
[attribute]
查找所有input标签中含有 id 属性的 div 元素
$("#one").click(function (){ $("input[id]").css("background","pink"); });
[attribute=value]
查找所有 name为hyipinvest的值
$("#one").click(function (){ $("input[name=‘hyipinvest‘]").css("background","pink"); });
[attribute!=value]
查找所有input中name不为hyipinvest的值
$("#one").click(function (){ $("input[name!=‘investhyip‘]").css("background","pink"); });
[attribute^=value]
查找所有input中name以hyip开头的值
$("#one").click(function (){ $("input[name^=‘hyip‘]").css("background","pink"); });
[attribute$=value]
查找所有input中name以hyip结束的值
$("#one").click(function (){ $("input[name$=‘hyip‘]").css("background","pink"); });
[attribute=value]
查找所有input中name包含oo的值
$("#one").click(function (){ $("input[name*=‘oo‘]").css("background","pink"); });
jQuery选择器全解-子元素过滤器
html由层层嵌套在一起的标签组成,由于一些标签需要进行单独处理,如何选取一个或者一些特定的嵌套标签在程序中就成为了一个问题。jQuery提供了子元素过滤选择器解决了这个问题。它包括4个选择器,具体内容将在下面详细讲解。
(1):nth-child选择器。
(2):first-child、:last-child选择器(两种)。
(3):only-child选择器。
子元素过滤器和上面基本过滤器相差不多,这里我就不一一举例了。
jQuery选择器全解-表单选择器——表单过滤器
<form id="form1" action="#"> <input type="button" value="http://www.mamicode.com/Button"/><br/> <input type="checkbox" name="c"/>1<input type="checkbox" name="c"/>2<input type="checkbox" name="c"/>3<br/> <input type="file" /><br/> <input type="hidden" /><div style="display:none">test</div><br/> <input type="image" /><br/> <input type="password" /><br/> <input type="radio" name="a"/>1<input type="radio" name="a"/>2<br/> <input type="reset" /><br/> <input type="submit" value="http://www.mamicode.com/提交"/><br/> <input type="text" /><br/> <select><option>Option</option></select><br/> <textarea rows="5" cols="20"></textarea><br/> <button>Button</button><br/></form>
$(document).ready(function(){ var $alltext = $("#form1 :text"); var $allpassword= $("#form1 :password"); var $allradio= $("#form1 :radio"); var $allcheckbox= $("#form1 :checkbox"); var $allsubmit= $("#form1 :submit"); var $allimage= $("#form1 :image"); var $allreset= $("#form1 :reset"); var $allbutton= $("#form1 :button"); // <input type=button /> 和 <button ></button>都可以匹配 var $allfile= $("#form1 :file"); var $allhidden= $("#form1 :hidden"); // <input type="hidden" />和<div style="display:none">test</div>都可以匹配. var $allselect = $("#form1 select"); var $alltextarea = $("#form1 textarea"); var $AllInputs = $("#form1 :input"); var $inputs = $("#form1 input"); $("div").append(" 有" + $alltext.length + " 个( :text 元素)<br/>") .append(" 有" + $allpassword.length + " 个( :password 元素)<br/>") .append(" 有" + $allradio.length + " 个( :radio 元素)<br/>") .append(" 有" + $allcheckbox.length + " 个( :checkbox 元素)<br/>") .append(" 有" + $allsubmit.length + " 个( :submit 元素)<br/>") .append(" 有" + $allimage.length + " 个( :image 元素)<br/>") .append(" 有" + $allreset.length + " 个( :reset 元素)<br/>") .append(" 有" + $allbutton.length + " 个( :button 元素)<br/>") .append(" 有" + $allfile.length + " 个( :file 元素)<br/>") .append(" 有" + $allhidden.length + " 个( :hidden 元素)<br/>") .append(" 有" + $allselect.length + " 个( select 元素)<br/>") .append(" 有" + $alltextarea.length + " 个( textarea 元素)<br/>") .append(" 表单有 " + $inputs.length + " 个(input)元素。<br/>") .append(" 总共有 " + $AllInputs.length + " 个(:input)元素。<br/>") .css("color", "red") $("form").submit(function () { return false; }); // return false;不能提交. });
jQuery选择器全解-基础选择器