0

我创建了一个 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>
4

1 回答 1

0
function deleteWord(){
  var number = Math.floor(Math.random() * 5);
  document.getElementById("test").innerText+="  "+ ph[number];
}

您的问题是 += 运算符附加" "+ ph[number]在字符串的当前值之后。

要替换,请使用 = 运算符分配新值。既然你想删除,只需使用一个空字符串。

  document.getElementById("test").innerText = "";

作为旁注,在字符串中存储多个空格是不常见的。如果您试图移动内容,您可能应该考虑设置padding-leftCSS 属性。

编辑:如果您不想丢失元素的全部内容,可以替换字符串的最后一部分:

  document.getElementById("test").innerText.replace(/   .*$/,"");
于 2013-04-07T22:56:28.317 回答