0

可能重复:
为什么 jQuery 或诸如 `getElementById` 之类的 DOM 方法找不到元素?

我有这个脚本:

<script>
var dataoriginale = document.getElementById("savedataoriginale").value;
</script>

和这个文本字段:

<input name="savedataoriginale" id="savedataoriginale" type="text" value="testtest">

但是当我尝试打印 javascript var

<script>document.write(dataoriginale)</script>

我不确定。

为什么?我该如何解决?

4

2 回答 2

3

这是因为在从输入中获取值之前,您有 2 个冲突 js 会话

这是工作选项

<input name="savedataoriginale" id="savedataoriginale" type="text" value="testtest">
<script>
var dataoriginale = document.getElementById("savedataoriginale").value;
document.write(dataoriginale);
</script>
于 2013-01-28T13:28:23.870 回答
2

很可能是因为<script><input>. 发生这种情况是因为在未解析 DOM 时document.getElementById("savedataoriginale").value返回。undefined

要解决这个问题,请将您的<script>标签放在 之后,<input>并确保它在解析 DOM 之前不会运行。您也可以像这样使用 DOMContentLoaded 事件:

document.addEventListener("DOMContentLoaded", function(){
  var dataoriginale = document.getElementById("savedataoriginale").value;
  alert( dataoriginale );
},false);

更多信息:

PS。你不需要在你的元素上同时拥有idname属性。<input>名称已弃用。身份证就够了。

于 2013-01-28T13:27:50.137 回答