-2

「divPIC」divの写真が表示されない理由がわかりません。「レート」変数をテストしましたが、実際に数値が表示されます。基本的に、評価が 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>
4

2 に答える 2

4
<divPIC></div>

これは次のように変更する必要があります。

<div id="divPIC"></div>

getElementByIdノード名ではなく、ID ( ) でアクセスしようとしているためです。

編集

さらに、これを使用する代わりに:

var rate = <?php echo json_encode($rate); ?>;

あなたはこれを考えるかもしれません:

var rate = <?php echo intval($rate); ?>;

$rateが整数でない場合、 から厄介なものが得られますjson_encode。代わりに、intval常に整数を返します。

もう一度編集: igasparetto が私を$rate提案に打ち負かしたことに気付きました。ありがとう!

于 2013-07-30T20:23:06.280 に答える
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}

そうすれば、ゼロ未満とゼロを処理できます。以前の制限を超えているかどうかをテストする理由はありません。

あなたがjqueryに反対していなければ...

var $divImg = $('#divImg'); 
// do this before the if else
//then you can append
$divImg.append('<img src="thestarimg.png"/>');

このフィドルを試してみてください。私はテキストを使用しています。 http://jsfiddle.net/VgKaN/

于 2013-07-30T20:28:58.797 に答える