2017-04-19 129 views
0

我在这里做错了什么?document.getElementById not working/Display

下面是代码:

<script> 
    var points = 1000; 
    document.getElementById(pointsdisplay).innerHTML = "Points:" + points; 
</script> 
<p id="pointsdisplay"></p> 

我要显示在网站上的点。我真的不明白为什么这不起作用。

请注意,我将脚本标记放入HTML代码中。稍后,我将制作一个外部js文件并将所有内容放在那里。

+0

把里面的getElementById标识双引号内。 –

+0

我注意到,在我修正了这个问题后,我忘记了在“当我打电话给点显示器的ID时”,但它仍然没有做任何PLZ帮助! – htmlJohn

+0

getElementById(“pointsdisplay”)周围的行情 – zer00ne

回答

0

这里有两个失误,

  1. 你需要围绕ID与"(双引号)
  2. 你应该把脚本标签创建的dom元素之后,否则可能之前实际dom执行被建造。即使您将js代码保存在单独的文件中,请确保您在dom之后,即在body代码结束之前将其写入。

所以,你的代码应该是这样的,

<p id="pointsdisplay"></p> 
<script> 
    var points = 1000; 
    document.getElementById('pointsdisplay').innerHTML = "Points:" + points; 
</script> 

工作jsFiddle

0

您需要在脚本之前在HTML中定义DOM。与此类似,

<p id="pointsdisplay"></p> 
 
<script> 
 
var points = 1000; 
 
document.getElementById("pointsdisplay").innerHTML = "Points:" + points; 
 
</script>

+0

谢谢!它解决了 – htmlJohn

+0

如果它起作用,那么请选择答案为Accepted,它会帮助他人并阻止其他人回答同样的问题。 –

0

你应该有报价之间的元素的id,此外,建议使用该脚本标记之前的DOM元素。

<p id="pointsdisplay"></p> 
 
<script> 
 
var points = 1000; 
 
document.getElementById('pointsdisplay').innerHTML = "Points:" + points; 
 
</script>

0

我想我在这里看到了两个问题。

第一个是需要给document.getElementById一个String。您可以使用:document.getElementById("pointsDisplay")。其次,我认为你需要把脚本放在p的下面。只要脚本碰到脚本标签,浏览器就会执行脚本。

0

ID名称应该是字符串和HTML标记应先加载

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<!--you have two options --> 
 
<p id="pointsdisplay"></p> 
 
<!--Html tag should be loaded first --> 
 
<script> 
 
var points = 1000; 
 
// the id name should be in string 
 
document.getElementById("pointsdisplay").innerHTML = "Points:" + points; 
 
</script> 
 

 
<!-- second option jquery ready function, so that would wait for the document to be loaded then execute the script --> 
 
<script> 
 
var points = 1000; 
 
$(document).ready(function(){ 
 
document.getElementById("pointsdisplay1").innerHTML = "Points:" + points; 
 
}); 
 
</script> 
 
<p id="pointsdisplay1"></p>

0

这里的所有其他答案都是正确的,但是我想指出的是,如果使用DOMContentLoaded事件,脚本将一直等到DOM加载完成后再执行。

例如,

<script> 
 
    document.addEventListener("DOMContentLoaded", function(event) { 
 
     var points = 1000; 
 
     document.getElementById("pointsdisplay").innerHTML = "Points:" + points; 
 
    }); 
 
</script> 
 
<p id="pointsdisplay"></p>