我在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文档的代码也是错误的。该示例不起作用。
答案 0 :(得分:3)
重新阅读文档:
此签名(仅限!)自jQuery 1.7起已弃用。这个方法是 主要用于内部或插件作者。
<强> Example pre-jQuery 1.7 强>
<强> Example post-jQuery 1.7 强>
答案 1 :(得分:1)
如果您尝试选择最接近的ul和最接近的正文,则应使用.parents()
和:first
,因为您当前尝试使用的方法已在最新版本的jQuery中删除。
var close = $("li:first").parents("ul:first,body:first");
$.each(close, function(i){
$("li").eq(i).html( this.nodeName );
});
根据定义, .closest()
只能选择1个元素,因为您要查找两个元素,您应该使用可以选择1个以上的.parents()
。
如果您只想选择1个元素,请使用.closest()
和选择该元素的选择器。 $("li:first").closest("ul");