2

我对 jQuery 中的 .closets() 有疑问

在 jQuery 文档上告诉我可以使用它。

<!DOCTYPE html>
<html>
<head>
  <style></style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <ul><li></li><li></li></ul>
<script>
  var close = $("li:first").closest(["ul","body"]);
  alert(close.length);
  </script>
</body>
</html>

http://api.jquery.com/closest/#closest2

在这部分我得到关于 ul 和 body 的信息,两个步骤 li

var close = $("li:first").closest(["ul","body"]);

但它不起作用,关闭里面没有任何东西,它是空的,我做错了什么?jQuery 文档中的代码也是错误的。该示例不起作用。

4

2 回答 2

3

重新阅读文档:

从 jQuery 1.7 开始,此签名(仅!)已弃用。此方法主要用于内部或插件作者。

jQuery 1.7 之前的示例

示例 post-jQuery 1.7

于 2012-09-20T19:37:10.753 回答
1

如果您尝试选择最接近的 ul 和最接近的主体,则应该改用.parents()and:first因为您当前尝试使用的方法已在最新版本的 jQuery 中删除。

http://jsfiddle.net/MYjRm/

var close = $("li:first").parents("ul:first,body:first");
  $.each(close, function(i){
  $("li").eq(i).html( this.nodeName );
});​

.closest()根据定义只能选择 1 个元素,因为您要寻找两个,所以应该使用.parents()可以选择超过 1 个的元素。

如果您只想选择 1 个元素,请使用.closest()将选择该元素的选择器。$("li:first").closest("ul");

于 2012-09-20T19:50:08.190 回答