黑马day16 jquery&内容过滤选择器&可见度选择器
内容过滤选择器的过滤规则主要体如今它所包括的子元素和文本内容上
1、:contains(text)
使用方法: $(”div:contains(’John’)”) 返回值 集合元素
使用方法: $(”div:contains(’John’)”) 返回值 集合元素
说明:匹配包括给定文本的元素.这个选择器比較实用。当我们要选择的不是dom标签元素时,它就派上了用场了,它的作用是查找被标签”围”起来的文本内容是否符合指定的内容的.
2、:empty
使用方法: $(”td:empty”) 返回值 集合元素
使用方法: $(”td:empty”) 返回值 集合元素
说明:匹配全部不包括子元素或者文本的空元素
3、:has(selector)
使用方法:$(”div:has(p)”).addClass(”test”) 返回值 集合元素
说明:匹配含有选择器所匹配的元素的元素.这个解释须要好好琢磨,可是一旦看了使用的样例就全然清楚了:给全部包括p元素的div标签加上class=”test”.
4、:parent
使用方法: $(”td:parent”) 返回值 集合元素
使用方法: $(”td:parent”) 返回值 集合元素
说明:匹配含有子元素或者文本的元素.注意:这里是”:parent”,可不是”.parent”哦!感觉与上面讲的”:empty”形成反义词.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>ddd</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script language="JavaScript" src="../js/jquery-1.4.2.js"></script> <style type="text/css"> div,span{ width: 140px; height: 140px; margin: 20px; background: #9999CC; border: #000 1px solid; float:left; font-size: 17px; font-family:Roman; } div.mini{ width: 30px; height: 30px; background: #CC66FF; border: #000 1px solid; font-size: 12px; font-family:Roman; } </style> <!--引入jquery的js库--> </head> <body> <input type="button" value="保存" class="mini" name="ok" class="mini" /> <input type="button" value=" 改变含有文本 ‘di’ 的 div 元素的背景色为 #0000FF" id="b1"/> <input type="button" value=" 改变不包括子元素(或者文本元素) 的 div 空元素的背景色为" id="b2"/> <input type="button" value=" 改变含有 class 为 mini 元素的 div 元素的背景色为 #0000FF" id="b3"/> <input type="button" value=" 改变含有子元素(或者文本元素)的div元素的背景色为 #0000FF" id="b4"/> <input type="button" value=" 改变不含有文本 di; 的 div 元素的背景色" id="b5"/> <h1>天气冷了</h1> <h2>天气又冷了</h2> <div id="one"> id为one div </div> <div id="two" class="mini" > id为two class是 mini div <div class="mini" >class是 mini</div> </div> <div class="one" > class是 one <div class="mini" >class是 mini</div> <div class="mini" >class是 mini</div> </div> <div class="one" > class是 one <div class="mini01" >class是 mini01</div> <div class="mini" >class是 mini</div> </div> <div class="one"> </div> <br> <div id="mover" > 动画 </div> <br> </body> <script language="JavaScript"> //<input type="button" value=" 改变含有文本 ‘di’ 的 div 元素的背景色为 #0000FF" id="b1"/> $("#b1").click(function(){ $("div:contains('di')").css("background","red"); }); //<input type="button" value=" 改变不包括子元素(或者文本元素) 的 div 空元素的背景色为" id="b2"/> $("#b2").click(function(){ $("div:empty").css("background","red"); }); //<input type="button" value=" 改变含有 class 为 mini 元素的 div 元素的背景色为 #0000FF" id="b3"/> $("#b3").click(function(){ $("div:has(.mini)").css("background","red"); }); //<input type="button" value=" 改变含有子元素(或者文本元素)的div元素的背景色为 #0000FF" id="b4"/> $("#b4").click(function(){ $("div:parent").css("background","red"); }); //<input type="button" value=" 改变不含有文本 di; 的 div 元素的背景色" id="b5"/> $("#b5").click(function(){ $("div:not(:contains('di'))").css("background","red"); }); </script> </html>
可见度过滤选择器是依据元素的可见和不可见状态来选择对应的元素
1、:hidden
使用方法: $(”tr:hidden”) 返回值 集合元素
使用方法: $(”tr:hidden”) 返回值 集合元素
说明: 匹配全部的不可见元素。input元素的type属性为“hidden”的话也会被匹配到.意思是css中display:none和inputtype=”hidden”的都会被匹配到.相同,要在脑海中彻底分清楚冒号”:”,点号”.”和逗号”,”的差别.
2、:visible
使用方法: $(”tr:visible”) 返回值 集合元素
使用方法: $(”tr:visible”) 返回值 集合元素
说明: 匹配全部的可见元素.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>ddd</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script language="JavaScript" src="../js/jquery-1.4.2.js"></script> <style type="text/css"> div,span{ width: 140px; height: 140px; margin: 20px; background: #9999CC; border: #000 1px solid; float:left; font-size: 17px; font-family:Roman; } div.mini{ width: 30px; height: 30px; background: #CC66FF; border: #000 1px solid; font-size: 12px; font-family:Roman; } div.visible{ display:none; } </style> <!--引入jquery的js库--> </head> <body> <input type="button" value="保存" class="mini" name="ok" class="mini" /> <input type="button" value=" 改变全部可见的div元素的背景色为 #0000FF" id="b1"/> <input type="button" value=" 选取全部不可见的元素, 利用 jQuery 中的 show() 方法将它们显示出来, 并设置其背景色为 #0000FF" id="b2"/> <input type="button" value=" 选取全部的文本隐藏域, 并打印它们的值" id="b3"/> <input type="button" value=" 选取全部的文本隐藏域, 并打印它们的值" id="b4"/> <!--文本隐藏域--> <input type="hidden" value="hidden_1"> <input type="hidden" value="hidden_2"> <input type="hidden" value="hidden_3"> <input type="hidden" value="hidden_4"> <h1>天气冷了</h1> <h2>天气又冷了</h2> <div id="one"> id为one div </div> <div id="two" class="mini" > id为two class是 mini div <div class="mini" >class是 mini</div> </div> <div class="visible" > class是 one <div class="mini" >class是 mini</div> <div class="mini" >class是 mini</div> </div> <div class="one" > class是 one <div class="mini01" >class是 mini01</div> <div class="mini" >class是 mini</div> </div> <div class="visible" > 这是隐藏的 </div> <div class="one"> </div> <br> <div id="mover" > 动画 </div> <br> </body> <script language="JavaScript"> //<input type="button" value=" 改变全部可见的div元素的背景色为 #0000FF" id="b1"/> $("#b1").click(function(){ $("div:visible").css("background","red"); }); //<input type="button" value=" 选取全部不可见的元素, 利用 jQuery 中的 show() 方法将它们显示出来, 并设置其背景色为 #0000FF" id="b2"/> $("#b2").click(function(){ $("div:hidden").show(); }); //<input type="button" value=" 选取全部的文本隐藏域, 并打印它们的值" id="b3"/> $("#b3").click(function(){ $("input:hidden").each(function(i,obj){ alert(obj.value); }); }); </script> </html>