关于javascript:在某些网站上使用jquery函数会导致未捕获的类型错误

Using jQuery functions on some websites cause Uncaught TypeError

我通过在chrome控制台中编写一些代码来学习jquery,例如,向dom元素添加id,然后执行jquery函数。

在一些网站上(例如谷歌),我得到了Uncaught TypeError,而在其他网站上,我没有得到。下面是一个例子:

DOM修改:

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

慰问:

1
$("#test").hide()

错误:

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

其他网站(例如stackoverflow)上的相同流也可以工作。原因是什么?


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

虽然您可以在许多网站上找到许多版本的jquery中的一个,但一些公司/项目/网站不使用jquery,或者它们使用自定义的jquery构建,或者在$标志下使用其他东西,或者根本不使用。

在网站上,默认情况下:

  • EDOCX1×1符号是EDOCX1×4的别名。
  • $$号是document.querySelectorAll()的别名。

如果该特定网站不使用其他实现(例如自定义函数、库、jquery等)覆盖这些变量。更多关于这个

信贷给@auxtaco

如果您需要在一个网站上使用jquery(例如出于开发目的),如果它不存在,您可以将它注入到该网站中。