这个JavaScript代码有什么问题?我正在尝试在点击</h1>上更改<h1>元素的文本

时间:2014-03-07 14:33:42

标签: javascript dom onclick

我刚开始学习JavaScript。

我正在尝试更改点击时的文字。这段代码出了什么问题。 请告诉我。 感谢

<!DOCTYPE html>
<html>
<body>

<script>

function change_text(id)
{
 var arr = new Array("Now Click Again",""oops! Once more!","I'm Leaving!","Good Bye!");

 var x = Document.getElementById("heading");


 for(var i=0;i<arr.length;i++)
  x.innerHTML=arr[i];

 x.style.visibility="hidden";

 }
</script>

<h1 onclick="change_text()" id="heading">Click on this text!</h1>
</body>
</html>

4 个答案:

答案 0 :(得分:1)

首先,你有两个引用:

""oops! Once more!"

应该是:

"oops! Once more!"

Document必须全部为小写(document)。

change_text(id)从未使用过,

x.style.visibility="hidden"需要移出for循环。

你根本不需要for循环,你只需要在每次调用方法时增加i ++,否则它将直接跳到“Goodbye”。

<script>
var i = 0;
function change_text()
{
 var arr = new Array("Now Click Again","oops! Once more!","I'm Leaving!","Good Bye!");

 var x = document.getElementById("heading");


  i++;
  x.innerHTML=arr[i];
  if(i >= arr.length) {
        x.style.visibility="hidden";
  }

}

</script>

编辑: 编辑2:好的,你之前有了这个想法!

答案 1 :(得分:0)

而不是“标题”

var x = Document.getElementById("heading");

你需要输入传入的值,id。

var x = Document.getElementById(id);

在此之前,你从未真正使用过那个id。

还记得将该ID传递给

h1 onclick="change_text('heading')"

答案 2 :(得分:0)

更改此行;

var arr = new Array("Now Click Again",""oops! Once more!","I'm Leaving!","Good Bye!");

和这一行

var x = Document.getElementById("heading");

到此;

var arr = new Array('Now Click Again','oops! Once more!','I\'m Leaving!','Good Bye!');
var x = document.getElementById(id);

答案 3 :(得分:0)

首先,我不知道你的问题是否是一个拼写错误,但你的字符串数组中有一个额外的“,这应该是它的外观。

var arr = new Array("Now Click Again","oops! Once more!","I'm Leaving!","Good Bye!");

我不知道你要对你的for循环做什么,但你显示的文本将永远是你数组中的最后一个。你能用h1元素中的文字澄清你想要实现的目标吗?

最后,如果你清楚地隐藏你的元素你的文字将不会出现,你应该删除这一行,除非有一些我不理解的东西:

x.style.visibility="hidden";

哦,我认为你的脚本元素应该有一个type =“text / javascript”

<script type="text/javascript">...

与问题无关,但如果您无法在阵列中发现字符串错误,那么您应该更改IDE。即使Notepad ++为字符串着色,它也可能帮助你解决这个问题。