使用JavaScript从HTML元素获取数值

使用JavaScript从HTML元素获取数值,javascript,Javascript,如何从HTML元素内部获取数值,稍后我将在倒计时中使用它?我在文档中不断遇到错误。getElementById(…)为空,是否缺少连接?这是小提琴: 50 开始倒计时 增加 var num=document.getElementById('num').innerHTML; var secs=num.parseInt(); 函数increaseNumber(){ secs++; } 功能倒计时(秒、元素){ var元素=document.getElementById(elem);/(elem) e

如何从HTML元素内部获取数值,稍后我将在倒计时中使用它?我在文档中不断遇到错误。getElementById(…)为空,是否缺少连接?这是小提琴:

50
开始倒计时
增加
var num=document.getElementById('num').innerHTML;
var secs=num.parseInt();
函数increaseNumber(){
secs++;
}
功能倒计时(秒、元素){
var元素=document.getElementById(elem);/(elem)
element.innerHTML=“请等待”+秒+“秒”;
//如果计时器变成负数
如果(秒<1){
清除超时(计时器);
element.innerHTML='Countdown complete!';
element.innerHTML+='';
}
秒--;
var timer=setTimeout('倒计时('+secs+',“'+elem+”),1000);
}
您错误地使用了parseInt()。你必须这样称呼它

var secs = parseInt(num,10);

再看看html中的代码应该是什么样子的

我将
parseInt
-方法更改为
函数
,并修复了错误的
setTimeout
参数。正如其他人提到的,您应该注意,Javascript在被浏览器解释时被执行。因此,如果在
中包含一个
-标记,该标记将访问正文的字段,它将找不到这些字段,因为浏览器尚未解释这些字段


var num=document.getElementById('num').innerHTML;
var secs=parseInt(num);
函数increaseNumber(){
secs++;
}
功能倒计时(秒、元素){
var元素=document.getElementById(elem);/(elem)
element.innerHTML=“请等待”+秒+“秒”;
//如果计时器变成负数
如果(秒<1){
清除超时(计时器);
element.innerHTML='Countdown complete!';
element.innerHTML+='';
}
秒--;
var timer=setTimeout(函数(){
倒计时(秒,元素);
}, 1000);
}
50
开始倒计时

增加
parseInt()
是一个函数,而不是一个方法,即您需要
parseInt(str)
,而不是
str.parseInt()
。此外,当您通过属性(onclick)等使用内联的DOM零事件时,您的Fiddle将失败。由于JS Fiddle代码被关闭,这些将找不到它们调用的函数。请使用正确的事件注册。问题中的代码无法显示如何加载JS。没有脚本标记。JS Fiddle中的代码给出了一组与您在问题中描述的完全不同的错误消息。在我们知道您的实际问题是什么之前,您需要提供一个真实的例子。
document.getElementById()
找不到元素的典型原因是,您在加载
之后,在HTML的其余部分(以及相关元素)完成加载之前,在
中运行JavaScript代码。当然,您共享的代码不会出现此问题。^^。。。但相关的小提琴显示了问题。将Javascript设置中的“Load type”更改为“No wrap-in”,修复
parseInt
问题,您的代码应该可以。此选项将所有脚本放置在关闭的
body
标记之前,这样
#num
就会在脚本运行之前存在。还请注意,您需要在
if
块的末尾使用
return
语句来防止计时器运行
clearTimeout
在这种情况下实际上是无用的。使用“in head”为True。但是他说document.getElementById(…)是空的,所以他之前有一些其他问题必须在元素呈现后执行
var secs = parseInt(num,10);