【发布时间】:2014-07-30 00:34:21
【问题描述】:
假设我有以下标记:
<div class="parent">
<div class="child">
<div class="grand-child">
我想从.grand-child 开始获得.parent。我可以做以下两个之一:
$('.grand-child').parent().parent();
$('.grand-child').closest('.parent');
总的来说,closest() 感觉是一种更好的方法,因为:
- 只有一个功能
- 与
.grand-child和.parent之间的其他div无关
具体来说,由于上面 #2 的优势,如果我要将标记更改为
<div class="parent">
<div class="child">
<div class="nanny">
<div class="grand-child">
然后我需要添加一个额外的parent() 但closest() 仍然可以正常工作。
那么你有什么理由选择parent() 或closest()?
【问题讨论】:
-
也许你必须访问元素的父元素,而你不会关心(甚至不知道)它是什么。那你就来看看
.parent()的用法 -
在jquery中使用
parent()和closest()函数有很多不同和需求。这取决于你的实际需要..看看他们之间的区别here -
看来您的应用程序非常适合
closest。但是,例如,如果您只想升级一级,那么parent将是最有用的。parent的优点是不需要标签就能找到它。这一切都取决于您的要求。 -
父母适合的很多情况。假设您不知道它是什么类或 ID,甚至不知道标签,但您知道您想要实际的父级?
closest()对特定目标更有效,尤其是在不确定它们有多远时 -
请注意
closest实际上会检查元素本身。 jsfiddle.net/tarabyte/A7ngQ
标签: javascript jquery