21-解决方案
2.5.2 解决方案
在这方面,通常只查询两种内容:文本内容和元素内容(其他元素)。对于前者,可以使用 :contains() 过滤器:
<!-- HTML -->
<span>Hello Bob!</span>
// 选择包含"Bob"的所有SPAN元素
jQuery('span:contains("Bob")');
注意,这个选择器是区分大小写的,所以搜索 bob 什么也不会找到(使用了一个小写的b)。而且,在所有情况下都不需要引号,但是加上引号是个好习惯,能够预防遇到必须使用引号的情况(例如,在打算使用圆括号时)。
可以使用 :has() 过滤器测试嵌套的元素。可以向这个过滤器传递任何有效选择器:
jQuery('div:has(p a)');
这个选择器将匹配在 <p> 元素(段落)中封装 <a> 元素(锚)的所有 <div> 元素。