document.getElementById('').value全局变量 undefined

我为祖国唱首歌 2016-04-28 10:32:59
<script type="text/javascript">
var obj = document.getElementById('textId').value;
function a(){
alert(obj);//undefined
}
</script>

document.getElementById('textId').value;作为全局变量吗
document.getElementById('textId').innerHTML效果也是一样
...全文
897 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2016-04-28
  • 打赏
  • 举报
回复
在全局环境下的代码是在页面加载阶段从上到下一边加载一边执行的,这时处于代码下面的页面元素还没有加载完,访问不到。 而且就算把script放在页面下面,或者放到window.onload事件中也不行,那样变量的值只是文本框初始的字符串,不是用户后来输入的值。 只有在函数内获取value的值,才能获取到文本框最新的内容。
  • 打赏
  • 举报
回复
引用 3 楼 u012418098 的回复:
script要放在页面结构下面,因为你的js有获取id ='textId' 的元素,现在执行的顺序是先执行你的script代码这个时候你的textId元素都不存在,肯定是获取不到的。或者你在script里面添加window.onload = function(){ //这里写你要执行的代码 }z这个作用是你页面加载完成以后再去执行.
放在页面结构下面确实就可以用了,因为我这个作用是获取用户输入的值生成图表,在data:[a,b,c],abc的值是用户输入的,感谢
___紫菜 2016-04-28
  • 打赏
  • 举报
回复
引用 3 楼 u012418098 的回复:
script要放在页面结构下面,因为你的js有获取id ='textId' 的元素,现在执行的顺序是先执行你的script代码这个时候你的textId元素都不存在,肯定是获取不到的。或者你在script里面添加window.onload = function(){ //这里写你要执行的代码 }z这个作用是你页面加载完成以后再去执行.
正解
jio可 2016-04-28
  • 打赏
  • 举报
回复
script要放在页面结构下面,因为你的js有获取id ='textId' 的元素,现在执行的顺序是先执行你的script代码这个时候你的textId元素都不存在,肯定是获取不到的。或者你在script里面添加window.onload = function(){ //这里写你要执行的代码 }z这个作用是你页面加载完成以后再去执行.
php_wsd 2016-04-28
  • 打赏
  • 举报
回复
<script type="text/javascript"> var obj = document.getElementById('textId').value; function a(){ alert(obj);//undefined } </script> 这段代码一定要放到textId表单下面,不然获取的就是undefined
墨白一凡 2016-04-28
  • 打赏
  • 举报
回复
为什么不写成这样:alert($("#textID").val());

textID标签元素是什么?
usecf 2016-04-28
  • 打赏
  • 举报
回复
1.window.onload = function(){ 这个函数是在你页面控件都初始化完成后,第一调用的 2,使用jquery的话 类似$(function() { }); 方法 把你函数实现放在这里就ok了

87,907

社区成员

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

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