我创建了一个javascript程序,当你点击标题“点击这里”时,逐个打印我的数组中的元素,我的问题是试图实现一个函数,当你点击时从html页面中删除一个随机单词在先前打印的单词上,但是它打印其他单词,我怎样才能创建一个删除之前打印的单词的功能?
<!DOCTYPE html>
<html>
<head>
<title>function JavaScript</title>
<script >
var k = 0;
var ph = ["red ","blue","black","green","yellow"];
function text(){
if(k < ph.length ){
document.getElementById("test").innerText+=" "+ ph[k];
k++;
}
}
function deleteWord(){
var number = Math.floor(Math.random() * 5);
document.getElementById("test").innerText+=" "+ ph[number];
}
</script>
</head>
<body>
<h1 onclick="text();">Click here</h1>
<span id="test" onclick="deleteWord();"></span>
</body>
</html>
答案 0 :(得分:0)
function deleteWord(){
var number = Math.floor(Math.random() * 5);
document.getElementById("test").innerText+=" "+ ph[number];
}
你的问题是+ =运算符在字符串的当前值之后附加" "+ ph[number]
。
要替换,请使用=运算符指定新值。因为要删除,只需使用空字符串。
document.getElementById("test").innerText = "";
作为旁注,在字符串中存储多个空格是不常见的。如果您尝试移动内容,则应考虑设置padding-left
CSS属性。
编辑:如果你不想丢失元素的全部内容,你可以替换字符串的最后一部分:
document.getElementById("test").innerText.replace(/ .*$/,"");