gpt4 book ai didi

javascript - 等效查询 => 相同的 JQuery 对象?

转载 作者:行者123 更新时间:2023-11-29 19:39:20 24 4
gpt4 key购买 nike

如果我有<element id="blah" class="blah" attr="blah"> (编辑:我在 DOM 中没有其他元素,只有这个)

那么这些 jQuery 对象是否绝对等价:

$("#blah")
$(".blah")
$("[attr=blah]")

是否在创建对象时执行查询,之后使用什么查询无关紧要?

编辑:使用的原始查询是否对以后我可能对生成的 jQuery 对象执行的任何操作有任何影响?上面的 3 个结果对象是否相同?它们对我使用的实际查询有任何持久影响吗? (例如,当我稍后对该对象做某事时)

最佳答案

每个人都可以获取元素,但是他们以不同的方式获取元素,因为他们是不同的选择器。

id 选择器#

$("#blah")

这将返回一个包含 1 元素(您列出的元素)的 jQuery 对象。使用 id 的好处是它只会返回你的一个元素(如果它存在),并且最快,因为 id 被认为是唯一的。

类选择器

$('.blah')

这将返回一个 jQuery 对象,其中包含一个元素数组(包括您找到的元素),但也包含具有此类的任何其他元素。由于没有与此选择器的组合,它会比直接的 id 查找慢,因为它必须检查页面上的每个元素以查找此类。

属性选择器[]

$("[attr=blah]")

很像类选择器,这将返回一个元素数组。它还必须检查每个元素。


如果在使用 jQuery 函数调用时只有一个匹配项,这些可能看起来是一样的。发生这种情况的原因是 jQuery 将查看是否有匹配的元素数组,然后在内部使用集合上的 $.each 将 jQuery 函数调用应用于它们。好处是这使得元素集对 jQuery 对象包装的单个元素的响应非常相似。

这里是 jQuery 支持的选择器的完整列表:
http://api.jquery.com/category/selectors/

关于javascript - 等效查询 => 相同的 JQuery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24019893/

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