使用jQuery,我可以通过以下方式查找表格行。查找表格行的这两种jQuery方法中的哪一种更快?
哪一个更快?还是没有太大的区别?
$('myTable').find('tr')
或
$('myTable tr')
使用jQuery,我可以通过以下方式查找表格行。查找表格行的这两种jQuery方法中的哪一种更快?
哪一个更快?还是没有太大的区别?
$('myTable').find('tr')
或
$('myTable tr')
这真是个人喜好。从编码的角度来看,并没有真正的优势。根据jQuery的.find()文档:
选择器上下文用.find()方法实现;因此, $('li.item-ii')。find('li')等价于$('li','li.item-ii')。
个人观点:由于$('myTable tr')
是更简洁,还是非常具有可读性,这是我的偏好。
$('myTable tr')
在幕后自动转换为$('myTable').find('tr')
,所以后者更快。
我认为$('myTable tr')
仅仅是$('myTable').find('tr')
的快捷方式 - 所以你最好使用find()
而不是上下文参数。通过使用find()
,你正在消除一个很好的函数调用;)
我认为这只是个人喜好的问题。
从技术上来说,find
方法应该更快,因为第一个是翻译为到find
语法。
我不认为你应该关心哪一个更快。你应该使用最适合你的应用的那个。举例来说,如果你要拨打的主要对象更多的方法,你应该使用find
:
$('myTable')
.aTableMethod()
.find('tr')
.aTrMethod()
.end()
.someOtherTableMethod();
在另一方面,如果你只是想选择一个对象的孩子,你不会做任何事情与对象本身,你应该坚持复杂的选择:
$('parent child');
我的建议是选择在未成年人(未成年人真)优化可读性,除非你有严格的规范这样做。这样你的代码更容易明白,调试和保持。
识别节点的最快方式是通过id(例如, $('#myTable')
。接下来,第二个示例将只调用一次kQuery解析器,而第一个示例将调用两次 - 第二个示例更快。
查看本文,它给出了一个很好的答案。
一般来说,简单的选择是最快的,如。 #myId
,.myClass
。这是因为它们被翻译为原生浏览器功能getElementById
和getElementsByClassName
。
因此,首先找到父元素,然后使用find应该稍微快一些。有关更多信息,请参见here。
没有真正的区别 - IMO'$('myTable tr')'更好,因为它看起来与CSS选择器相同。 –