JS命令无法在外部文件中识别

时间:2014-12-14 00:31:04

标签: javascript html css

我想使用命令innerHTML来更改HTML代码的文本。如果我将它放在HTML文件中,它就可以工作,但如果我放入外部文件,则无效。

有效的那个:

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <p id="Monkey">Monkey</p>
    <script>
        document.querySelector("#Monkey").innerHTML="NoMoreMonkeys";
    </script>
     </body>

</html

输出:NoMoreMonkeys

没有:

<!DOCTYPE html>
<html>
  <head>
  <script src="hello.js"></script>
  </head>
  <body>
    <p id="Monkey">Monkey</p>
 </body>
</html>

文件&#34; hello.js&#34; :

document.querySelector("#Monkey").innerHTML="NoMoreMonkeys";

输出:猴子

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

你应该在身体结束前加入js,

因为如果js在DOM准备好之前运行,#Monkey就不存在了。

<!DOCTYPE html>
<html>
<head>

</head>
<body>
   <p id="Monkey">Monkey</p>
   <script src="hello.js"></script>
</body>
</html>

或准备好jquery文件:

$(document).ready(function() {
    document.querySelector("#Monkey").innerHTML="NoMoreMonkeys";
});

答案 1 :(得分:0)

解决方案是在安全的情况下操纵页面。 为此,当文档准备就绪时,将jQuery添加到您的页面并让您的JS代码执行。

$( document ).ready(function() {
   document.querySelector("#Monkey").innerHTML="NoMoreMonkeys";
});

或者用jQuery选择元素:

$( document ).ready(function() {
  $( "#Monkey" ).html("NoMoreMonkeys");
});