0

数値の配列を返す関数があります。次に、関連する結果 ID に同じ数の星を表示する必要があります。JavaScriptの完全な初心者として(まだ検証に苦労しています:P)、私は多くのことを試しましたが役に立ちませんでした。以下のコード スニペット (現在の状態) で問題が解決されることを願っています -

function display(name1, number1, sign1, name2, number2, sign2, check, y_nat, o_nat) {
    document.getElementById("yname").innerHTML = name1 ;
    document.getElementById("ynumber").innerHTML = number1 ;
    document.getElementById("ysign").innerHTML = sign1 ;
    document.getElementById("oname").innerHTML = name2 ;
    document.getElementById("onumber").innerHTML = number2 ;
    document.getElementById("osign").innerHTML = sign2 ;
    document.getElementById('result').innerHTML = check + '%';
/* I am trying to display y_nat[0] Stars in the result id - yr  by calling a show_image(id, number) function! */
    x = "yr";
    document.getElementById("yr").innerHTML = show_image(x ,y_nat[0]) ;
    x = "yl";
    document.getElementById("yl").innerHTML = y_nat[1] ;
    x = "yf";
    document.getElementById("yf").innerHTML = y_nat[2] ;
    x = "yp";
    document.getElementById("yp").innerHTML = y_nat[3] ;
    x = "ys";
    document.getElementById("ys").innerHTML = y_nat[4] ;
    x = "yi";
    document.getElementById("yi").innerHTML = y_nat[5] ;
    x = "or";
    document.getElementById("or").innerHTML = o_nat[0] ;
    x = "ol";
    document.getElementById("ol").innerHTML = o_nat[1] ;
    x = "of";
    document.getElementById("of").innerHTML = o_nat[2] ;
    x = "op";
    document.getElementById("op").innerHTML = o_nat[3] ;
    x = "os";
    document.getElementById("os").innerHTML = o_nat[4] ;
    x = "oi";
    document.getElementById("oi").innerHTML = o_nat[5] ;
}

function show_image (id,number) {
        var img = document.createElement("img");
        img.src = "stars2.png";
        x = number;
    y = id;
        for (i =0; i<x; i++){
        document.getElementById(y).appendChild(img);
    }
}//or something of this sort

問題が不明な場合はお知らせください。私はまだそれを解決しようとしており、誰かがこれを導くことができることを本当に義務付けられています. JavaScriptを学ぼうとしています。次のリンクのコードを使用しようとしています。 http://www.codingforums.com/archive/index.php/t-94715.html

前もって感謝します。

4

1 に答える 1

2

私が見る最初の問題は、ループ内に次の2行が必要なことです

    var img = document.createElement("img");
    img.src = "stars2.png";

このような:

for (var i =0; i<x; i++){
    var img = document.createElement("img");
    img.src = "stars2.png";
    document.getElementById(y).appendChild(img);
}

2 番目の問題: show_image は (undefined を除いて) 何も返しませんが、それを使用して、画像を追加したばかりの要素の html-content を設定します。

document.getElementById("yr").innerHTML = show_image(x ,y_nat[0]) ;

この行を次のように変更します。

show_image(x ,y_nat[0]) ;

もっと悪いことがあるかもしれませんが、それが私が気づいたことです。動作する小さな例を作成しました(IEとChromeでテスト済み):

<html>

<head>
<script type="text/javascript">

function display() {
    var x = "yr";
    show_image(x ,3) ;
}

function show_image (id,number) {
    var x = number;
    var y = id;
    for (var i =0; i<x; i++){
        var img = document.createElement("img");
        img.src = "stars2.png";
        document.getElementById(y).appendChild(img);
    }
}


</script>

</head>


<body onload="display();">

<div id="yr"></div>

</body>


</html>
于 2012-06-09T22:14:56.530 に答える