【问题标题】:Using jQuery functions on some websites cause Uncaught TypeError在某些网站上使用 jQuery 函数会导致 Uncaught TypeError
【发布时间】:2018-12-09 04:31:10
【问题描述】:

我正在通过在 Chrome 的控制台中编写一些代码来学习 jQuery,例如将 id 添加到 DOM 元素,然后执行 jQuery 函数。

在某些网站上(例如Google)我得到Uncaught TypeError 而在其他网站上却没有。这是一个例子:

DOM 修改:

<input id="test" aria-label="Szukaj w Google" name="btnK" type="submit" jsaction="sf.chk">

控制台:

$("#test").hide()

错误:

VM598:1 Uncaught TypeError: $(...).hide is not a function
at <anonymous>:1:12

其他网站上的相同流程(例如StackOverflow)有效。是什么原因?

【问题讨论】:

    标签: javascript jquery browser-console


    【解决方案1】:

    Internet 上的许多网站都没有加载 jQuery。这就是您收到错误消息Uncaught TypeError: $(...).hide is not a function 的原因,因为实际上$ 不是jQuery,而是另一个函数、对象,或者它只是未定义。

    尽管您可以在许多网站上找到 one of many versions of jQuery,但有几个公司/项目/网站不使用 jQuery,或者他们使用custom build of it,或者$ 符号下的其他东西,或者根本不使用.


    在网站上,默认情况下

    如果该特定网站没有使用其他实现(例如自定义函数、库、jQuery 等)覆盖这些变量。 More on this

    感谢@AuxTaco


    如果您需要在没有 jQuery 的网站(例如用于开发目的)上安装 jQuery,you can inject it into the website

    【讨论】:

    • 但是当我执行例如 $("#test").value = "newValue" 它适用于谷歌,我可以更改搜索按钮上的字符串,所以我假设 jQuery 加载到谷歌
    • 可能他们在$ 下有一个自定义库,或者它是一个自定义构建的jQuery。如果您使用 Chrome,您可以在“网络”和“来源”选项卡下查看它们在 $ 符号下真正使用的代码。
    • @SigGP 使用$ 作为查找元素的函数的简称是很常见的。但它并不总是 jQuery。
    • $没有另外定义时,it's an alias for document.querySelector在控制台中。
    猜你喜欢
    • 2020-03-04
    • 2020-09-16
    • 2019-07-14
    • 1970-01-01
    • 2017-09-18
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多