我使用closest() 有什么问题吗?
我有一组嵌套的 DIV
,我需要从内盒中找到每个外盒。根据 jQuery API,closest()
方法获取与选择器匹配的第一个祖先元素。所以我尝试了这个:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css"><!--
div{
margin: 1em;
padding: em;
border: 1px solid black;
}
--></style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript"><!--
jQuery(function($){
$(".direccion-html").closest("div").css({borderColor: "red"});
});
//--></script>
</head>
<body>
<div>
<div class="direccion-html">Foo</div>
</div>
<div>
<div class="direccion-html">Bar</div>
</div>
</body>
</html>
但是,我的closest()选择器正在获取元素本身,而不是它的任何祖先。我做错了什么?这一定是一个明显的错误,但我无法理解它......
更新:
我根据尼克的回答编写了这个:
jQuery(function($){
$(".direccion-html").each(function(){
$(this).parents("div:first").css({borderColor: "red"});
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
.closest()
从当前元素开始,如果匹配则为最接近的。如果您想要最近的元素,请使用.parents()< /code>
具有相同的选择器和
:first
,就像这样:您可以在这里测试。或者,适用于许多元素的替代路线:
在此处测试该版本。
.closest()
starts with the current element, if it's matches then that's the closest. If you want the nearest that's not the element, use.parents()
with the same selector and:first
, like this:You can test it out here. Or, an alternatively route that works for many elements:
Test that version here.