【问题标题】:Accessing Sizzle methods via jQuery通过 jQuery 访问 Sizzle 方法
【发布时间】:2015-04-22 02:03:53
【问题描述】:

在 jQuery 源代码中,它清楚地写着 jQuery.find = Sizzle;

但是当我尝试访问特定的 Sizzle 方法时,该函数不存在。 这就是对象的样子。

窗口。咝咝声 | window.jQuery.find .isXML | .isXML .matches | 。火柴 .matchesSelector| .matchesSelector .包含 | .包含 .attr | .attr .错误 | 。错误 .uniqueSort | .uniqueSort .getText | .getText .选择器 | .选择器 .tokenize | .编译 | .选择 | .支持 | .setDocument | | 。找 | 。筛选

我不明白为什么 jquery 团队会覆盖/删除这些方法。 有没有办法访问这些缺失的功能,还是我必须下载 sizzle 库? 我需要的方法tokenize。

jquery source
Sizzlejs source

非常感谢

【问题讨论】:

  • 如果window.Sizzle,是不是说明库已经下载了?
  • 也许你应该看看 jquery 团队建议的 migrate 插件。
  • @Anthony 对不起,我加载它只是为了比较。 Sizzle 仅对 jquery 对象可用,因为它在一个闭包中,因此不能全局访问。
  • @Jai 这不是版本问题。当我说它被删除时,我的意思是它存在于 sizzle 对象中,但不存在于 $.find 对象中。我并不是说这些方法曾经存在于以前版本的 jQuery 中并已弃用

标签: javascript jquery sizzle


【解决方案1】:

AFAIK 您可以使用 $.find.tokenize - 请参阅问题 https://github.com/jquery/sizzle/issues/242

【讨论】:

  • $.find.tokenize 确实存在于较新版本的 jquery 中
  • 谢谢,我已经看到了这个问题,但我认为这是 jquery 的问题,因为当我使用 sizzle 时,这些方法是可以访问的。我使用的 jquery 版本在提交之前使用了旧版本的 sizzle 库。
【解决方案2】:

对于那些出于任何原因想要从 jQuery 访问 Sizzle 方法的人...

在 jQuery 源代码中,我们有...

jQuery.find = Sizzle;

所以所有的 Sizzle 方法都可以从 jQuery.find 访问

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多