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