jQuery parents() 方法用于获取给定选择器的所有祖先元素。它是 jQuery 中的一个内置函数。此方法从父元素向上遍历,在 DOM 树中向上遍历,并返回所选元素的所有祖先。

parents() 方法和parent() 方法区别:

parents() 方法类似于 parent() 方法,因为它们都向上移动到 DOM 树并返回父元素。但不同的是,parents() 方法在 DOM 树中向上遍历多个层级并返回给定选择器的所有祖先,包括祖父母、曾祖父母等,而 parent() 方法向上遍历单个级别,并且只返回给定选择器的直接父级。

语法

$(selector).parents(filter) 
filter:可选参数,指定选择器表达式,用于缩小祖先的搜索范围。如果我们需要获取多个祖先,我们必须用逗号分隔每个表达式。

例子

例1

返回h4元素的所有父元素。

<!DOCTYPE html>
<html>
<head>
<style>
.main *{ 
  border: 2px solid black;
  padding: 10px;
  margin: 15px;
}
</style>
<script src = "https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function fun(){
	$(document).ready(function(){
	  $("h4").parents().css({ "color": "blue", "border": "3px dashed blue"});
	});
}
</script>
</head>
<body class = "main"> body
  <div> div
    <ul> ul 
      <h4>  h4
          <p>  p </p>
      </h4>
    </ul>   
	</div>
<button onclick = "fun()"> 点击看看 </button>
  </body>
</html>

例2

使用ul过滤

<!DOCTYPE html>
<html>
<head>
<style>
.main *{ 
  border: 2px solid black;
  padding: 10px;
  margin: 15px;
}
</style>
<script src = "https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function fun(){
$(document).ready(function(){
  $("p").parents("ul").css({ "color": "blue", "border": "3px dashed blue"});
});
}
</script>
</head>
<body class = "main"> body
  <div> div
    <ul> ul 
      <h4>  h4
          <p>  p  </p>
      </h4>
    </ul>   
	</div>
<button onclick = "fun()"> 点击看看 </button>
  </body>
</html>

例3

选择多个

 <!DOCTYPE html>
<html>
<head>
<style>
.main *{ 
  border: 2px solid black;
  padding: 10px;
  margin: 10px;
}
</style>
<script src = "https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function fun(){
$(document).ready(function(){
  $("p").parents("ul, h4").css({ "border": "3px dashed blue"});
});
}
</script>
</head>
<body class = "main"> body
  <div> div
    <ul> ul 
      <h4>  h4
	  <div> div 
          <p> p
		  </p>
		  </div>
      </h4>
    </ul>   
	</div>
<button onclick = "fun()"> 点击看看 </button>
  </body>
</html>