一:内容过滤选择器
1 :contains(text)(取包含text文本的元素)
$(function(){
$("li:contains('r')").css("color","red");
})
<ul>
<li>abc</li>
<li>bcdr</li>
<li>cgh</li>
</ul>
2 :empty(取不包含子元素或文本为空的元素)
$(function(){
$("li:empty").html("没有内容");
})
<ul>
<li>php</li>
<li>jquery</li>
<li>html</li>
<li></li>
</ul>
3 :has(selector)(取选择器匹配的元素)
$(function(){
$("div:has('span')").css("color","red");
})
</script>
<div>
<span>aaaa</span>
</div>
<div>
<p>aaaa</p>
</div>
4 :parent(取包含子元素或文本的元素)
$(function(){
$("li:parent").css("color","blue");
})
<ul>
<li>
<span>aaaa</span>
</li>
<li>dddd</li>
<li></li>
</ul>
二:可见性选择器
1 :hidden(取不可见的元素)
$(function(){
var dv = $("div:hidden").show(1000);
var hd = $("input:hidden").val();
alert(hd);
})
<div style="display: none"></div>
<input type="hidden" value="这个是隐藏域">
<div style="visibility: hidden;background:blue;"></div>
<div style="opacity:0"></div>
注:hidden选择器仅匹配display:none或<input type="hidden" />的元素,而不匹配visibility: hidden或opacity:0的元素。这也意味着hidden只匹配那些“隐藏的”并且不占空间的元素,像visibility:hidden或 opactity:0的元素占据了空间,会被排除在外。
2 :visible(取可见的元素)
$(function(){
var dv = $("div:visible").css("background","#f0f");
})
<div style="display: none"></div>
<input type="hidden" value="这个是隐藏域">
<div style="visibility: hidden;background:blue;"></div>
<div style="opacity:0"></div>
<div></div>
三:属性过滤选择器
1: [attribute](取拥有attribute属性的元素)
$(function(){
$("span[class]").css("color","red");
})
2: [attribute = value]和[attribute != value](取attribute属性值等于value或不等于value的元素)
$(function(){
$("span[class=sp]").css("color","red");
$("span[class!=sp]").css("color","red");
})
3: [attribute ^= value], [attribute $= value]和[attribute *= value](attribute属性值以value开始,以value结束,或包含value值)
$(function(){
$("span[class^=c]").css("color","red");
$("span[class$=p]").css("color","blue");
$("span[class*=l]").css("color","green");
})
4: [selector1][selector2](复合型属性过滤器,同时满足多个条件)
$(function(){
$("span[class][name=sp]").css("color","red");
})
四:子元素过滤选择器
1 :first-child和:last-child(:first-child表示第一个子元素,:last-child表示最后一个子元素。)
注::fisrst和:last返回的都是单个元素,而:first-child和:last-child返回的都是集合元素。举个 例子:div:first返回的是整个DOM文档中第一个div元素,而div:first-child是返回所有div元素下的第一个元素合并后的集合。
$(function(){
//$("div:first").css("color","blue");
$("div span:first-child").css("color","red");
$("div span:last-child").css("color","red");
})
<div>
<span>aaa</span>
<span>bbb</span>
<span>ccc</span>
</div>
<div>
<span>aaa</span>
<span>bbb</span>
<span>ccc</span>
</div>
2 :only-child(某个元素是父元素中唯一的子元素)
$(function(){
$("div span:only-child").css("color","red");
})
<div>
<span>aaa</span>
</div>
<div>
<span>bbb</span>
<span>bbb</span>
<span>bbb</span>
</div>
3 :nth-child(匹配其父元素下的第N个子或奇偶元素,nth表示第n个)
注::nth-child从1开始的,而:eq()是从0算起的。
$(function(){
$("div span:nth-child(2)").css("color","red");
})
:nth-child有三种用法:
1) :nth-child(x),获取第x个子元素
2) :nth-child(even)和:nth-child(odd),从1开始,获取第偶数个元素或第奇数个元素
3) :nth-child(xn+y),x>=0,y>=0。例如x = 3, y = 0时就是3n,表示取第3n个元素(n>=0)。
$(function(){
$("ul li:nth-child(6)").css("color","red");
$("ul li:nth-child(even)").css("color","blue");
$("ul li:nth-child(odd)").css("color","green");
})
<ul>
<li>aaaaaaaaaa</li>
<li>aaaaaaaaaa</li>
<li>aaaaaaaaaa</li>
<li>aaaaaaaaaa</li>
<li>aaaaaaaaaa</li>
<li>aaaaaaaaaa</li>
</ul>
五:表单对象过滤选择器
1 :enabled和:disabled(取可用或不可用元素)
注::enabled和:disabled的匹配范围包括input, select, textarea。
$(function(){
$(":enabled").css("border","1px solid red");
$(":disabled").css("border","1px solid blue");
})
<input type="text" disabled="disabled">
<select name="sel" disabled="disabled">
<option>aaa</option>
<option>aaa</option>
<option>aaa</option>
</select>
<textarea disabled="disabled">aaaa</textarea>
2 :checked(取选中的单选框或复选框元素)
注:不匹配select元素
$(function(){
$(":checked").each(function(){
alert($(this).val());
});
})
<td>
<input type="radio" value="男" name="sex">男
<input type="radio" value="女" name="sex" checked="true">女
</td>
3 :selected(取下拉列表被选中的元素)
$(function(){
alert($(":selected").val());
})
<select>
<option value="安徽">安徽</option>
<option value="浙江" selected>浙江</option>
<option value="江苏">江苏</option>
</select>
六:表单选择器
1::input(取input,textarea,select,button元素)
$(function(){
$(":input").css("border","1px solid red");
})
<input type="text">
<input type="button">
<textarea></textarea>
<select></select>
2 :text(取单行文本框元素)和:password(取密码框元素)
$(function(){
alert($(":text").val());
alert($(":password").attr("name"));
})
<input type="text" value="aaa">
<input type="password" name="pwd">
3 :radio(取单选框元素)
$(function(){
$(":radio").each(function(){
alert($(this).val());
})
})
<input type="radio" value="男" name="sex">男
<input type="radio" value="女" name="sex">女
4 :checkbox(取复选框元素)
$(function(){
$(":checkbox").each(function(){
alert($(this).val());
})
})
5 :submit(取提交按钮元素)
$(function(){
alert($(":submit").val());
})
<input type="submit" value="提交">
6. :reset(取重置按钮元素)
$(function(){
var val = $(":reset").val();
alert(val);
})
7. :button(取按钮元素)
$(function(){
var val = $(":button").val();
alert(val);
})
8. :file(取上传域元素)
$(function(){
var val = $(":file").attr("name");
alert(val);
})
9. :image (取图片按钮元素)
$(function(){
var val = $(":image").attr("name");
alert(val);
})
10. :hidden(取不可见元素)
$(function(){
var val = $("input:hidden").attr("name");
var val = $("p:hidden").html();
alert(val);
})