获取以下代码示例的父节点的更好方法是什么?
...
<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>
答案 0 :(得分:5)
由于它们中的任何一个实际上都不能正常工作以实现所需的功能,因此哪种方法更快的问题就是重点,你不觉得吗? You are looking for closest()
,而不是parent()
或parents()
。一般来说,考虑到性能可能是一个坏主意,直到你肯定你有一个正常工作的方法。
答案 1 :(得分:1)
答案 2 :(得分:0)
在我看来,最好使用parents()
因为如果您的代码发生了变化,您将完全引用其他元素。它的思路有点慢,但是你只有很少的节点,所以不应该产生很大的影响。
最好使用parents()
并找到所需的元素(在其他情况下),以编写许多.parent().parent().parent().parent().parent().parent().parent().parent()
。代码更加可维护,imho。