首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'parent()‘和'parents()’哪个更好?

'parent()‘和'parents()’哪个更好?
EN

Stack Overflow用户
提问于 2010-07-30 21:14:56
回答 3查看 232关注 0票数 2

对于下面的代码示例,获取父节点的更好方法是什么?

代码语言:javascript
复制
...
<tr>
  <td>
    <table>
      <tr>
        <td>
          <div class="block_data">
            Hello world!!
          </div>
        </td>
      </tr>
    </table>
  </td>
</tr>




/*Javascript code 1*/
$('.block_data').parents('tr').first()...


/*Javascript code 2*/
$('.block_data').parent().parent()...

这两个代码中哪一个更快(考虑性能,而不是编码)?想象一下这样的情况,有很多父母:

代码语言:javascript
复制
...
<tr>
  <td>
    ...
  </td>
</tr>
...
<tr>
  <td>
    <div>
      <div>
        <div>
          <div class="block_data">
            Hello world!!
          </div>
        </div>
      </div>
    </div>
  </td>
</tr>
EN

回答 3

Stack Overflow用户

发布于 2010-07-30 21:18:49

由于这两种方法实际上都不能正确地实现您想要的功能,所以哪种方法更快的问题有点离题,你不觉得吗?You are looking for closest(),而不是parent()parents()。一般来说,在你确定你有一个正确工作的方法之前,考虑性能可能是一个坏主意。

票数 5
EN

Stack Overflow用户

发布于 2010-07-30 21:50:56

您使用的

代码语言:javascript
复制
.parents('tr').first()

将承受对DOM的更改,其中包含处理程序的元素嵌套得更深。

在这种情况下,我更喜欢使用

代码语言:javascript
复制
.parents('tr:first')

另一个答案提到了closest('tr')。这真的是两者之间的一种选择。

有些人喜欢使用.parents(),因为它的名称更能描述它所做的事情。这就是你需要.first():first来获得第一个的地方。

.closest().parents()之间,性能因浏览器而异。

票数 1
EN

Stack Overflow用户

发布于 2010-07-30 21:17:31

在我看来,最好使用parents(),因为如果您的代码发生更改,您将引用完全不同的元素。这是有点慢的想法,但你只有几个节点,所以它应该不会有太大影响。

最好使用parents()并找到所需的元素,而不是(在某些其他情况下)编写许多.parent().parent().parent().parent().parent().parent().parent().parent()。这样代码更容易维护,imho。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3371752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档