gpt4 book ai didi

jquery - $ ('#id tag' ) 与 $ ('#id' ).find ('tag' ) - 哪个更可取?

转载 作者:行者123 更新时间:2023-12-03 21:51:13 25 4
gpt4 key购买 nike

我想知道哪个选项更好,特别是在速度方面:

$('#id tag')...

$('#id').find('tag')...

此外,如果您将 id 和/或 tag 更改为 class 或类似 的内容,同样的答案是否适用>输入:选中

例如,哪个更好: $('#id input:checked')...$('#id').find('input:checked') ;

最佳答案

您可以根据三件事做出决定:

可读性

这与您给定的两个选择器没有太大区别。就我而言,我更喜欢 $('#id').find('inner') 语法,因为它更准确地描述了它实际执行的操作。

可重用性

如果代码的其他部分使用相同的 id 选择器(或其上下文中的某些内容),则可以缓存选择器并重用它。我自己发现重构像 $('#id inside') 这样编写的代码会更困难,因为您必须先解码 css 选择器,然后才能继续前进并找到可能的改进。

想象一下这两种情况,并不复杂

$('#hello .class_name tag').doThis();
$('#hello .other_name input').doThat();

还有另一种情况

$('#hello').find('.class_name tag').doThis();
$('#hello').find('.other_name input').doThat();

我认为第二个例子让你尖叫“缓存 id 选择器”,而第一个例子却没有。

速度

性能始终是一个优点,在这种情况下,带有 find 的 id 选择器在大多数浏览器中表现更好,因为它首先建立上下文,并且可以将降序选择器应用于较小的元素子集。

Here's a good performance test, if you want to know more about context-vs subset selectors performance in jQuery 。 id 的子集通常规则。当然,您可能会得到不同的结果,但在大多数情况下,都是如此。

所以,从我的角度来看,子集选择器是 3 到 0。

关于jquery - $ ('#id tag' ) 与 $ ('#id' ).find ('tag' ) - 哪个更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11502563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com