0

「ここをクリック」というタイトルをクリックすると、配列から要素を1つずつ出力する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-left代わりに CSS プロパティを設定することを検討する必要があります。

編集: 要素の内容全体を失いたくない場合は、文字列の最後の部分を置き換えることができます:

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