【问题标题】:"Uncaught TypeError: Illegal invocation" when using "document.querySelector" [duplicate]使用“document.querySelector”时出现“未捕获的类型错误:非法调用”[重复]
【发布时间】:2021-09-24 20:38:33
【问题描述】:

我有这个简单的两行 JS 代码,它不断出错,并显示“未捕获的类型错误:非法调用”。

const $ = document.querySelector;
$('#someElementId').display = 'none';
<p id="someElementId">The element</p>

【问题讨论】:

  • 在分离方法时会丢失document 上下文。你需要类似const $ = document.querySelector.bind(document)

标签: javascript


【解决方案1】:

您缺少style 属性。

使用以下代码:

$('#someElementId').style.display='none';

要修复Illegal Invocation,正如@phil 的评论和this answer 中所述,您必须确保将您的querySelector 绑定到文档:

const $ = document.querySelector.bind(document);

这是一个终于可以工作的sn-p:

const $ = document.querySelector.bind( document );
$('#someElementId').style.display = 'none';
<p id="someElementId">The element</p>

【讨论】:

  • OP 需要这个,但它不能解决 “非法调用” 错误
  • 是的,我刚刚意识到我也错过了,谢谢。旁注:我对发帖还很陌生,如何将评论标记为解决方案?
  • @R0bl0x10501050 你没有
  • @Phil 关于绑定是正确的。我正在更新答案以反映建议!
猜你喜欢
  • 1970-01-01
  • 2019-04-29
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多