gpt4 book ai didi

javascript - JQuery:使用#[objectId] 或 [id=objectId] 引用元素有什么区别

转载 作者:搜寻专家 更新时间:2023-11-01 05:12:02 27 4
gpt4 key购买 nike

谁能告诉我使用
#[objectId][id=objectId] 引用元素有什么区别?

最佳答案

第一个非常快,因为 jQuery 内部使用 getElementById当它识别出模式时(使用正则表达式)。

第二个要求 jQuery 遍历所有具有 id 的对象。这很慢。在这种情况下,jQuery 在找到一个匹配项时甚至不会停止迭代。

使用 [id... 的唯一合法理由选择器是当您不只是按确切的 id 搜索时,例如您可能想搜索 id 以 "something" 开头的所有元素。使用 $('[id^=something]') .

假设你有一个有效的 HTML ( no reused id ) 和一个有效的 id,你仍然会遇到 $('#'+someId) 的问题。 (例如,当您的 ID 包含引号或任何破坏 Sizzle 模式识别系统的内容时)。在这种情况下,使用 $(document.getElementById(someId)) .


根据您的评论:是的,"@"在 ID 中使 Sizzle(jQuery 的选择器引擎)无法理解您的选择器。 Sizzle 使用以下正则表达式:

rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,

/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/.test('#som@thing')返回 false .

关于javascript - JQuery:使用#[objectId] 或 [id=objectId] 引用元素有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729179/

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