什么是更好的'parent()'或'parents()'?

时间:2010-07-30 13:14:56

标签: javascript jquery performance xhtml

获取以下代码示例的父节点的更好方法是什么?

...
<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()...

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

...
<tr>
  <td>
    ...
  </td>
</tr>
...
<tr>
  <td>
    <div>
      <div>
        <div>
          <div class="block_data">
            Hello world!!
          </div>
        </div>
      </div>
    </div>
  </td>
</tr>

3 个答案:

答案 0 :(得分:5)

由于它们中的任何一个实际上都不能正常工作以实现所需的功能,因此哪种方法更快的问题就是重点,你不觉得吗? You are looking for closest(),而不是parent()parents()。一般来说,考虑到性能可能是一个坏主意,直到你肯定你有一个正常工作的方法。

答案 1 :(得分:1)

答案 2 :(得分:0)

在我看来,最好使用parents()因为如果您的代码发生了变化,您将完全引用其他元素。它的思路有点慢,但是你只有很少的节点,所以不应该产生很大的影响。

最好使用parents()并找到所需的元素(在其他情况下),以编写许多.parent().parent().parent().parent().parent().parent().parent().parent()。代码更加可维护,imho。