0

星を行ごとに増減させたい、つまり、最初の行に 1 つ星、2 つ目に 2 つ星、3 つ目に 3 つ星などを表示したい.

<!DOCTYPE html>
<html>
<body>

<script>
function seethestars() {
        stars = ["*", "**", "***", "****", "*****"];
        for (var i = 0, l = stars.length; i < l; i++) {
            document.getElementById("emptytext2").value = (stars[i] + "");
        }
    }
</script>
<textarea id="emptytext2" name="S2"></textarea></td>

<input id="emptytext3" type="button" value="Click for the stars" onclick ="seethestars()" /><tr>
</body>
</html>

このような

ここに画像の説明を入力

4

4 に答える 4

0
var n=10;
function seethestars() {
   var s;
   document.getElementById("emptytext2").value = "";
   for (var i = 1; i <= n; i++) {
      s="";
      for (var j=0; j < i; j++) {
         s+="*";
      }
      document.getElementById("emptytext2").value += s+"\n";
   }
}

コードを試したことはありませんが、そのように見えるはずです。

于 2013-11-07T13:16:51.880 に答える
0

デモを見る `

<script type="text/javascript">
    function seethestars() {
        //Stars incrementation
        stars = 5;
        var starsHtml = '';
        for (var i = 1; i <= stars; i++) {
            starsHtml += Array(i+1).join("*")+ "\n";
        }
        document.getElementById("emptytext2").value = starsHtml;
    }
    //Stars decrementation
    function seethestarsReverse() {
        stars = 5;
        var starsHtml = '';
        for (var i = 1; i <= stars; i++) {
            starsHtml += Array(i+1).join("*")+ "\n";
        }
        var starsHtml = starsHtml.split("").reverse().join("").substring(1);
        document.getElementById("emptytext2").value = starsHtml;
    }
</script>

`

于 2013-11-07T13:49:22.147 に答える
0

ここでやりたいことは、配列を逆方向にループすることです。これは難しくありません。カウントアップするのではなく、 でforループを開始しstars.length、 まで下げる必要があります。0

既存のコンテンツを置き換えるのではなく、Javascript を追加するために、 を に=する必要もあります。+=

function seethestars() {
    stars = ["*", "**", "***", "****", "*****"];
    for (var i = stars.length; i--; ) {
        document.getElementById("emptytext2").value += (stars[i] + "\n");
    }
}

jsフィドル

于 2013-11-07T13:12:24.830 に答える