我很困惑为什么这不显示“divPIC”div中的任何图片。我已经测试了“rate”变量,它确实显示了一个数字。基本上,如果评级在if,else语句中,这应该只显示星级评分图片。什么都没有出现。
使用Javascript:
var rate = <?php echo json_encode($rate); ?>;
if (rate == 0) {
document.getElementById('divPIC').innerHTML = "<img src='images/0star.png'>";
}
else if (0 < rate && 4 > rate) {
document.getElementById('divPIC').innerHTML = "<img src='images/1star.png'>";
}
else if (3 < rate && 6 > rate) {
document.getElementById('divPIC').innerHTML = "<img src='images/2star.png'>";
}
else if (5 < rate) {
document.getElementById('divPIC').innerHTML = "<img src='images/3star.png'>";
}
HTML:
<div id="divPIC"></div>
答案 0 :(得分:4)
<divPIC></div>
这应该改为:
<div id="divPIC"></div>
因为您尝试通过其ID(getElementById
)而非其节点名称来访问它。
此外,而不是使用此:
var rate = <?php echo json_encode($rate); ?>;
你可能会考虑这个:
var rate = <?php echo intval($rate); ?>;
如果$rate
不是整数,那么你会从json_encode
得到一些令人讨厌的东西。相反,intval
将始终返回一个整数。
再次编辑:刚刚注意到igasparetto打败了我$rate
的建议。谢谢!的
答案 1 :(得分:0)
编写它可能更容易:
var r = <?php echo json_encode($rate); ?>;
if(r<1){ //show 0star img}
else if (r<4){ //show 1star img}
else if (r<6){ //show 2star img}
else{ //show 3star img}
这样你处理的不到零&amp;零。没有理由测试你是否大于之前的限制。
如果你不反对jquery ......
var $divImg = $('#divImg');
// do this before the if else
//then you can append
$divImg.append('<img src="thestarimg.png"/>');
尝试这个小提琴,我只是使用文字。 http://jsfiddle.net/VgKaN/