jQuery选择器之内容筛选选择器
基本筛选选择器针对的都是元素DOM节点,如果我们要通过内容来过滤,jQuery也提供了一组内容筛选选择器,当然其规则也会体现在它所包含的子元素或者文本内容上
内容过滤器描述如下表:
注意事项:
:contains与:has都有查找的意思,但是contains查找包含“指定文本”的元素,has查找包含“指定元素”的元素
如果:contains匹配的文本包含在元素的子元素中,同样认为是符合条件的。
:parent与:empty是相反的,两者所涉及的子元素,包括文本节点
代码示例:
<!DOCTYPE html>
<html><head><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><title></title><script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script><style>.left {width: auto;height: 120px;}.left div {width: 100px;height: 70px;padding: 5px;margin: 5px;float: left;background: #bbffaa;border: 1px solid #ccc;}.bottom {width: 800px;}.bottom div,.bottom span {display: block;width: 80px;height: 80px;margin: 5px;background: #bbffaa;float: left;font-size: 14px;}.bottom .small {width: 60px;height: 25px;font-size: 12px;background: #fab;}.ul01 > li{padding:10px;margin:10px;}.li02{font-size:24px;}</style>
</head><body> <h2>内容筛选选择器</h2><h3>:contains/:has</h3><div class="left"><div class="div"><p>:contains1111</p></div><div class="div"><p>:contains2222</p></div><div class="div"><p><span>:has3333</span></p></div><div class="div"><p>:contains4444</p></div></div><script type="text/javascript">//查找上面所有标题元素,包括<h1><h2><h3>...(不包括后面的标题元素)//并且设置颜色$(":header").css("color","red");</script><script type="text/javascript">//查找所有class='div'中DOM元素中包含":contains"的元素节点//并且设置颜色$(".div:contains(':contains')").css("color", "red");</script><script type="text/javascript">//查找所有class='div'中DOM元素中包含"span"的元素节点//并且设置颜色$(".div:has(span)").css("color", "blue");</script><h3>:parent/:empty</h3><div class="left"><div class="aaron"><a>:parent</a></div><div class="aaron"><a>:parent</a></div><div class="aaron"><a></a></div><div class="aaron"><a></a></div></div><script type="text/javascript">//选择所有包含子元素或者文本的a元素//增加一个蓝色的边框$("a:parent").css("border", "3px groove blue");</script><script type="text/javascript">//找到a元素下面的所有空节点(没有子元素)//增加一段文本与边框$("a:empty").text(":empty").css("border", "3px groove red"); </script>
</body>
</html>