显示&评级'像使用javascript计算值的星星一样

时间:2012-06-09 07:52:30

标签: javascript html image

我有一个返回数字数组的函数。接下来,我必须在相关结果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

提前致谢。

1 个答案:

答案 0 :(得分: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);
}

第二个问题:show_image没有返回任何内容(undefined除外),但你用它来设置你刚刚添加图像的元素的html内容:

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>