我刚开始学习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>
答案 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 ++为字符串着色,它也可能帮助你解决这个问题。