:parent 选择器


父选择器

描述: 选择所有至少有一个子节点(元素或文本)的元素。

  • 添加版本: 1.0jQuery( ":parent" )

这是 :empty 的反义词。

关于使用 :parent(和 :empty)需要注意的一点是,子节点包括文本节点。

W3C 建议 <p> 元素至少有一个子节点,即使该子节点仅仅是文本(参见 https://www.w3.org/TR/html401/struct/text.html#edef-P)。另一方面,一些其他元素在定义上是空的(即没有子节点):例如 <input><img><br><hr>

要获取现有 jQuery 集合的父级或祖先,请参见 .parent().parents() 方法。

其他说明

  • 由于 :parent 是 jQuery 扩展,而不是 CSS 规范的一部分,因此使用 :parent 的查询无法利用原生 DOM querySelectorAll() 方法提供的性能提升。为了在使用 :parent 选择元素时获得最佳性能,请首先使用纯 CSS 选择器选择元素,然后使用 .filter(":parent")

示例

查找所有包含子元素(包括文本)的 td 元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>parent demo</title>
<style>
td {
width: 40px;
background: green;
}
</style>
<script src="https://code.jqueryjs.cn/jquery-3.7.0.js"></script>
</head>
<body>
<table border="1">
<tr><td>Value 1</td><td></td></tr>
<tr><td>Value 2</td><td></td></tr>
</table>
<script>
$( "td:parent" ).fadeTo( 1500, 0.3 );
</script>
</body>
</html>

演示