插入新元素不成功

Legend1988 2011-09-14 04:01:15
<script type="text/javascript">
window.onload = function(){
var newelement = document.createElement("Button");
var textele = document.createTextNode("点击改变样式");
newelement.appendChild(textele);
newelement.onclick = test;
var ule = document.getElementById("ulelement");
ule.parentNode.appendChild(newelement);
}
</script>
如上代码是我用js创建一个按钮并插入到原来的html中,这样是成功的,但是当把onload事件去掉之后也就是
<script type="text/javascript">
var newelement = document.createElement("Button");
var textele = document.createTextNode("点击改变样式");
newelement.appendChild(textele);
newelement.onclick = test;
var ule = document.getElementById("ulelement");
ule.parentNode.appendChild(newelement);
</script>
这样就不行了,请问为什么?非常感谢~
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Legend1988 2011-09-14
  • 打赏
  • 举报
回复
got it.谢谢![Quote=引用 4 楼 asdl7878 的回复:]

SCRIPT标签里的内容 FUNCTION意外的代码在不写ONLOAD的情况下
也是可以执行的
但是LZ要注意你脚本代码的位置
页面加载编译的顺序是从上到下的
你在上面写的话那编译到你的脚本代码时
会由于下面的内容没有被加载而获取不到对象
你把这些脚本代码放在下面那结果就会不一样了
LZ可以试试
[/Quote]
Legend1988 2011-09-14
  • 打赏
  • 举报
回复
懂了,非常感谢![Quote=引用 3 楼 truelove12 的回复:]

你没有给出上下文,但据我推测,你的js应该是写在head间的,把它们修改到

<script>
...
</script
</body>

这样的位置就可以了。

因为,如果没有利用window.onload 事件,var ule = document.getElementById("ulelement");
这个ule对象在dom中不存在,对一个null对象执行ule.pa……
[/Quote]
veval 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 legend1988 的回复:]

见谅见谅,刚开始学这个没几天。您的意思是<script></script>之间的内容必须都是以函数形式出现并且有事件触发才可以吗?引用 1 楼 zsx841021 的回复:

你去掉了ONLOAD。。那你也应该写个事件去触发它啊。。不然它怎么执行,什么都没有当然不执行了。。。不知道你怎么想的。。
[/Quote]

可以不用函数,会顺序执行,但是你得保证执行的过程中所需要用到的对象在dom中已经存在,上面有兄弟提到过,所以要么在onload之后执行,要么放到代码最下面
asdl7878 2011-09-14
  • 打赏
  • 举报
回复
SCRIPT标签里的内容 FUNCTION意外的代码在不写ONLOAD的情况下
也是可以执行的
但是LZ要注意你脚本代码的位置
页面加载编译的顺序是从上到下的
你在上面写的话那编译到你的脚本代码时
会由于下面的内容没有被加载而获取不到对象
你把这些脚本代码放在下面那结果就会不一样了
LZ可以试试
  • 打赏
  • 举报
回复
你没有给出上下文,但据我推测,你的js应该是写在head间的,把它们修改到

<script>
...
</script
</body>

这样的位置就可以了。

因为,如果没有利用window.onload 事件,var ule = document.getElementById("ulelement");
这个ule对象在dom中不存在,对一个null对象执行ule.parentNode方法肯定就报错了
Legend1988 2011-09-14
  • 打赏
  • 举报
回复
见谅见谅,刚开始学这个没几天。您的意思是<script></script>之间的内容必须都是以函数形式出现并且有事件触发才可以吗?[Quote=引用 1 楼 zsx841021 的回复:]

你去掉了ONLOAD。。那你也应该写个事件去触发它啊。。不然它怎么执行,什么都没有当然不执行了。。。不知道你怎么想的。。
[/Quote]
三石-gary 2011-09-14
  • 打赏
  • 举报
回复
你去掉了ONLOAD。。那你也应该写个事件去触发它啊。。不然它怎么执行,什么都没有当然不执行了。。。不知道你怎么想的。。

87,989

社区成员

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

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