第 11 课 13 / 17 | 编码:L11-17
代码推演

同一选择器为什么先失败后成功?

<script>
  console.log('之前:', document.querySelector('#hello'));
</script>
<button id="hello" type="button">问好</button>
<script>
  const hello = document.querySelector('#hello');
  console.log('之后:', hello.tagName);
</script>

提问:预测两次输出。为什么不能仅凭第一次查询失败就认定选择器写错?给一个不修改 id 的修复思路。

查看参考解析

第一次 null,第二次 BUTTON。解析第一段脚本时按钮尚未出现。可放在目标元素后查询,或使用带 defer 的外部经典脚本;给普通内联脚本添加 defer 不会获得同样效果。