为啥外部js不能获取html内的td标签?

在同一时空相遇 2019-07-21 09:38:03
var len = document.getElementsByTagName("td").length; //为啥在外部js中这样写没用?! alert(len); 代码如上, 把这段代码写入html<script></script>便签里面就可以运行, 但是如果作为外部js导入, 就只能获取到<html><body>这样的标签, 连<table>都获取不到,这是啥情况呢?
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
table 还没渲染完成 你的方法就执行了 ,window.onload 很重要
天际的海浪 2019-07-21
  • 打赏
  • 举报
回复
在全局环境下的代码是在页面加载阶段从上到下一边加载一边执行的,这时处于代码下面的页面元素还没有加载完,访问不到。
要把script放在页面body标签的最下面,或者使用window.onload事件(页面加载完成后触发)才可以。

  • 打赏
  • 举报
回复
引用 1 楼 winzond的回复:
建议发相关的完整代码。另外,考虑外部引入是否有等待文档加载完成才执行的代码,如果没有的话,肯定是获取不到的,JS一般加载在<head>,它比<body>先执行,此时是获取不到的
原来这么小的细节漏了
  • 打赏
  • 举报
回复
引用 1 楼 winzond的回复:
建议发相关的完整代码。另外,考虑外部引入是否有等待文档加载完成才执行的代码,如果没有的话,肯定是获取不到的,JS一般加载在<head>,它比<body>先执行,此时是获取不到的
有这个可能,因为我没加onload事件,我试试
winzond 2019-07-21
  • 打赏
  • 举报
回复
建议发相关的完整代码。另外,考虑外部引入是否有等待文档加载完成才执行的代码,如果没有的话,肯定是获取不到的,JS一般加载在<head>,它比<body>先执行,此时是获取不到的

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧