javascript文档.getElementById('').value返回null
javascript document. getElementById('').value returns null
如果我直接将方法document.getElementById
插入方法setTimeout
,则工作良好
1.
<!DOCTYPE html>
<html>
<body>
<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
setTimeout(function(){ alert("Hello"); }, document.getElementById("numbers").value);
}
</script>
<input id="numbers" type="textbox" />
</body>
</html>
2.
<!DOCTYPE html>
<html>
<body>
<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<button onclick="myFunction()">Try it</button>
<script>
var numbers = document.getElementById("numbers").value
function myFunction() {
setTimeout(function(){ alert("Hello"); }, numbers);
}
</script>
<input id="numbers" type="textbox" />
</body>
</html>
为什么第二个不起作用?我认为var numbers
返回null
,但我不知道为什么。
页面加载时正在执行var numbers = document.getElementById("numbers").value
行,numbers
还不存在。
在第一个版本中,当点击事件触发并调用附加的处理程序时,您将检索元素及其值。在那一刻,输入字段有一个返回的值。
在第二个版本中,当DOM中不存在输入字段时,您将检索输入元素及其值,因此在调用处理程序时使用null
。显然你应该选择前者。
正如@gmiley所说,数字还不存在。您应该包括:
var numbers = document.getElementById("numbers").value
在您的功能内部。
此外,顺便说一句。。。将javascript放在文件中间可能不是最好的做法。我几乎看不到"script"标记后面的"input"。
相关文章:
- .value返回字符串,直到我将其保存到变量
- 等待's返回Promise而不是value
- 有些人有任何关于如何使用Modified Java Script Value处理返回Json(url)的示例
- 为什么我'我得到的是Not-A-Number,而不是函数返回的Value
- 使用deferred.resolve(Value)返回给my.then()的值未定义
- Promise.all() - 如何在不返回 undefined 或 value 的情况下解析()
- file.value 返回未定义
- 为什么document.forms[“myform”][“input”].value返回未定义
- this.value 返回带有值的括号
- jQuery对象.value返回未定义的值
- getElementById().value返回未定义
- javascript文档.getElementById('').value返回null
- 输入类型的getElementById.value返回未定义的值
- Array.find(value)返回值'不是函数'
- 使用indexof value返回第二个数组中的值
- cookie的Value返回"false"每一次
- .value返回undefined而不是正确的HTML值
- .onblur函数作为variable.value返回
- Span.innerHTML返回文本,但Span.value返回未定义的值
- 文本框.Value返回一个空字符串